Home News Features Examples Code FAQ License
AVR Webring
Prev Hub Join Rate Next
19 aug 2015 New plans.

[19 aug 2015] New plans.

It's been a long time since anything happend around here. But, there are new developments. I have made an installer that lets you pick the gcc version you want, the xmega version is almost ready and we are building applications for embedded devices with LoRa/Sigfox. Since these require an all low battery usage, Femto OS is particullary well suited. Furthermore, we will transfer the whole stack to github.

[18 feb 2010] Release of v0.92.

New release. Some extra functions, a few bugfixes.

[15 jan 2010] TempleTronics: home automation using Femto OS!

A few moments ago, i have launched the open source hardware project TempleTronics. This is a home automation project using Femto OS on every controller. The project is in its infancy, as is the website. However, i already have some hardware running. Foto's and circuit diagrams will be published the next few days. Stay tuned.

[14 jan 2010] Elektor: article about Femto OS!

Today, Elektor published an article about my OS. This is really great. Thank you Clemens Valens and Jerry Jacobs! NB: the article cannot be read online for free, you have to buy the magazine or the one article.

[03 dec 2009] Server relocated.

Due to financial problems of my colocation i instantly had to move my server to an other place. This caused several hours of downtime. Mail have been bounced. My appologies for this situation. The new location may, at times, be somewhat slower.

[26 nov 2009] Release of v0.912.

This release contains a installer for AVR Studio from Atmel (version 4.18). Some minor fixes too.

[17 nov 2009] Questions on the forum.

I am very pleased that so many people are trying/using my OS. Downloads are increasing up to almost 300 a month. Great! However, this implies that the number of questions is also rising. There are days that i get more than ten help/feature requests per day. Writing good answers takes time, and my boss is complaining that not enough work is done! So please do not email me with support questions, but put them on the forum. My answers will be readable for all, and possibly reduce the number of closely related questions. Thanks a lot.

[15 oct 2009] Release of v0.91.

This release is experimental, but has an important new feature: shared stacks. It is now possible to let tasks that never need to run concurrently share the stackspace. This saves a lot of bytes. Shared tasks may run concurrently with other, normal tasks. For our Shell example (running on attiny861 with 512 bytes ram) we reduced the ram usage with 147 bytes, without any loss of functionality. The same applies to the FlashLeds example which now runs 8 independent tasks and the OS in only 47 bytes of ram. There where a number of other improvements too.

The release is experimental in the sense that this feature required a rather extensive change of the kernel, so that may trigger unexpected behaviour. Please report the problems you may encounter.

[11 sep 2009] Release of v0.89 and Getting Started Guide.

Number of ports increased from 31 to 44! Almost all regular atmel mega's and tiny's are supported now 'out of the box'. Further, some adjustments to the code. Toolchain is updated, as are other scripts. The website now contains a "Getting Started Guide" and a list of all possible error codes that may appear on the leds. If your device starts blinking in a strange fashion, that's where to look.

[28 aug 2009] Large server outage.

Due to some careless digging a glasfiber in Amsterdam has been cut. The whole datacentre was cut loose from the internet. My site, and many others, where not reachable any more from approx 05:54 until 21:00, utc time. Email may have bounced too.

[5 aug 2009] Workshop at HAR 2009.

At the dutch hackers conference HAR2009 i will present the Femto OS in a workshop. If you have a ticket (they are already sold out!), please stop by. I have many USB programmers ready, built on USBasp from Thomas Fischl [good work Thomas!!], so all you need to have is a laptop. I will demonstrate the OS, and a lot of its features. Furthermore, don't forget, i have some free T-Shirts, if you participate in my workshop. Don't mis it!

[30 jul 2009] The t-shirts arived.

For the HAR 2009 i have some give-away t-shirts. On the front some figures of the OS and, of course, the goose. On the back the new goose. They are meant for the HAR, but if you want one, please drop me line. Price: 15 euro (production price). Available sizes: medium and large.

[10 jul 2009] Femto OS lifting off.

Anja (from anjaranja) designed a new goose for me. This goose is just taking off, as i hope your application will too, using my OS.

[6 feb 2009] Release of v0.88.

Nothing really spectacular, but more a maintenance release. I solved some bugs, and improved the error handling, reintroduced blocks on the tick counter and orthogonalized the configuration parameters. Also, there is no need any more for a hack backend of the gcc compiler, so i removed the hack. Furthermore, i improved the toolchain installer script, and added some useful tips by Carsten Foss. (Thanks!)

[3 dec 2008] Over 1000 Downloads!

We passed the 1000 downloads barrier on my birthday (few days ago). That is a little over 110 downloads every month. This really pleases me. I already got some reactions. If you have the time, drop me a line and tell me about your experiences. I cannot improve the product without proper feedback.

[30 nov 2008] 30 new ports: v0.87

Sorry , it has been a long time. But, there is a major development. First, i removed the 255 stack size boundary. This paved the way for a lot of ports. In order to make that possible, the port.c / port.h files have been 'virtualized'. For all avr devices an atXXXX.asm file has been introduced, which contains all settings. Adding a port for a device not supported should be fairly easy now.

Although all demo applications have been tested for each port (over 700 builds!) i release this package with a odd version number. Stability may be less in certain circumstances, as may the coherence of all tools and settings. Some demo's do not fit particular hardware, and some hardware may not exhibit full functionality. In general however, these limitations are minor. And, of course, there are a lot of small improvements. Furthermore, i switched to gcc 4.3.2 and included a new toolchain builder. (Tested on Windows 2000, Gentoo Linux and Mac OSX 10.5)

See this release as a play version, since i changed so many minor issues too, and expect the next release to be finished within a few weeks. Like to hear your experiences!

[22 aug 2008] File system added: v0.86

The Femto OS has been changed on many pleaces. See the changelog for full details. Most important change is the addition of a file system on EEPROM. The EEPROM can now, partially if necessary, be used to store files. Since writing to the EEPROM costs time, the writing task is blocked, and other tasks are allowed to continue. The synchronization is managed by a single write - multiple read synchronizer, which is totally independant of the already present synchronization methodes, and takes only one byte of ram.

I have also added a lightweight event system. This can be utilized in for example interrupts, to revive waiting tasks. It even works when the OS is interruptable. Using events you can setup communication with much less overhead as compared to the traditional approach (interrupt driven).

Furthermore, it has been a while since a tested the toolchains on the different platforms. Now, i did not change anything (still all gcc 4.2.3), so everything should work. Well, you know, those things usually have the most problems. So if there is one, mail me.

[13 jun 2008] Configuration parameter incorrectly set.

Unfortunately the packages 0.84 and 0.841 have been shipped with
#define cfgCheckEvents cfgTrue
instead of
#define cfgCheckEvents cfgFalse
in the two examples TestFlashLeds and TestQueus. When cfgSysOptimized is set to cfgFalse (as is per default) this results in non-functional applications unless you connect the device to the trace application. Setting cfgCheckEvents to cfgTrue and a clean/build cycle resolves the matter. The binaries in the package are functional, since they where compiled with optimization switched on.

I will not ship a seperate package to resolve this matter.

[10 jun 2008] Updated installation toolchain: v0.841

Unfortunately, there where some script commands commented out in the last install toolchain script. This has been corrected and the file was replaced in version 0.841

[8 jun 2008] Synchronization rewritten: v0.84

The syschronization primitves have been rewritten. This resulted in a smaller footprint for the applications making use of a single slot, whereas it is now possible to block on two slots simultaneously. This comes in handy when you need to pump data between two queus for example. No need to spin lock.

Furthermore, the bug has been solved, or more acurately, a configuration parameter has been added, and i hacked the backend of the gcc compiler to accept a new attribute "bikini". The code will still compile with the standard compiler, but that may result in larger code due to unnecessary bytes in the pro- en epilog. The option bikini comes in place of the naked attribute so that the compiler includes a framepointer when needed, but still skips the rest of the epilog and prolog.

The api has changed a little and we now have a page on this site for your convineance. And, we have also a page describing all config parameters. These are handy for a quick reference.

[3 apr 2008] First bug.

Today i learned there is a design flaw in my OS. I thought it was a gcc bug, but it is not. It is true gcc produces faulty code, but the reason is i more or less allowed it to. See bug report 1933368. The code can still be used however.

[31 mar 2008] Launch of version 0.82.

Most important change is the posibility to use more slots (locks) per task. Thus some task may now enter one or more mutexes and then block on a queue. Nesting is realized within the same framework. Per two slots one byte of ram is used. If just one slot is required (old situation) code is further optimized by the preprocessor. Tasks that do not use slots do not consume ram anymore, so this usually gains some bytes. Code size has increased somewhat. See changes for full details.

Note i tried to compile Femto OS with GCC 4.3.0. This lead to an increase of the codesize (same compiler options and code) of approximately 8%! So i keep it to GCC 4.2.3 for this moment.

[29 mar 2008] We have a mascot.

No self repecting OS can do without a proper mascot. Since my artistic skills are below any measurable level, i asked Anja from "Anja Ranja" to design something. It was based on an encounter i once had with a goose. The behaviour of that animal inspired me somehow to design Femto OS, so it seemd only fair to give it the place it deserves.

Please note i do not own the copyright of the goose so if you want to copy it (to put on some device you made) please ask first. I assume that copying it for the sole purpose to put it on your website for a discussion about the Femto OS, and with proper reference to this website, will be OK.

[29 feb 2008] First Launch of version 0.80!

To anybody who dares to use this product right after first launch: enjoy yourself!

Contact: info@femtoos.org   CC-BY License: Ruud Vlaming.