As smartphones continue to get bigger and bigger, the race to have the smallest chip running Unix (or Linux, as the case may be) is still on. A new contender in this arena is [Serge] who has crammed RetroBSD on a Fubarino microcontroller for a powerful breadboard-friendly device.
The device uses a PIC32MX795 processor to run version 2.11BSD Unix for microcontrollers. It uses only 128 kbytes of RAM which is great for the limited space available, but it doesn’t skimp on software. It has a C compiler, assembler, and a whole host of other utilities that you’d expect to find in something much more powerful. All of this comes in a package that has breadboard-compatible pins so you can interface your Unix with the real world.
There’s a video below that shows the device in action, and a whole host of instructions that’ll get you up and running in no time if you have the hardware available. [Serge] mentioned that this would run on other architectures but is looking for others to join the project to port it to those processors. This isn’t the first time we’ve seen *nix installed on a microcontroller, but it is one of the more useful ones!
You can get a FUBARINO board directly from FUBAR Labs IGG campaign right now – and help out a great cause at the same time: http://igg.me/at/fubarlabs/x/3216769
I always thought the reason was because putting OSI on a low-clock chip and segmented display was putting OSI on a low-clock chip and segmented display..
To Add: Why would ANYONE use a generic OS for PIC? Who wrote this BSD the electric companies?
well, at least it wasn’t written by Sesame Street!
(GOML) ;)
Because you can.
How’s that a good reason? You can punch yourself in the nuts, but being able to doesn’t make it a good reason;-)
If man had taken that attitude since time began nothing would have ever been achieved. Why climb a mountain? “Because it’s there!”. Where’s your sense of adventure, man!? You don’t realise what an achievement it is to squeeze an entire multi-tasking operating system into such a small chip. It’s not so much a case of “because you can”, but more “because they said you can’t, but I’m going to set out to prove them wrong!”
Oh, and Johnny Knoxville made millions of dollars punching himself in the nuts. “Good reason” all depends on your perspective (and love of $$$).
Looking at the size of the Fubarino I wonder whether it wouldn’t have been easier to just solder the header pins in the other way around (or just turn the board over) and skip the breadboard alltogether instead of heaving just one free row crammed at each side.
A lot of boards like this have that sort of layout; I’ve been using an MBed for a uni project, and that only leaves about a row clear on a breadboard. The thing to keep in mind, though, is A; this is a smaller than usual breadboard, so normally there’d still be space at the other end of the breadboard to put other components, and it’s easier to go breadboard-to-breadboard with connections than jumpering over to a loose board, and B; While they are covered by the board, the rows underneath the fubarino can still be used; you’ve just got to plan out your connections before you put the board in, as they’ll be a little tricky to tweak afterwards. I did that with a lot of the connections on my uni project; kept it all nice and neat.
The Fubarino comes with the headers detached. You can put them either side, or use right-angled headers if you choose, or even female headers to poke wires directly in. Or even no headers at all and solder the wires in directly. It’s flexible – unlike some of the attitudes I see on these comments ;)
The first Unix box I owned was an IBM PC/XT with 256 KB RAM and two floppy drives running Minix. This part has *considerably* better specs.
Save space on the breadboard by putting right angle headers on it, and turning it vertically on one side.
module width is a bit on the ‘too wide’ side. can’t it be made thinner? the 40pin (etc) dip socket style is a preferred form factor.
I do use lots of arduinos and I started with the 328 skinnydip chip. I used lots of those and designed and shipped product using it. then I became aware of the nano v3 style form factor, years later. those are cheap as chips (lol) and they cost me a bit more width than the skinny-dip spacing, but they also brought along enough useful stuff to justify it, sometimes. but I do dislike the width that I gave up (board space sometimes matters). for this unix-on-a-chip, it seems that I’m being asked, as a builder, to give up at least 1 more row of pcb real estate. its hard to keep asking for a row and a row ;) and so, I would ask: what, on the -module-, could be changed or given up so that they take the hit on the chip size rather than the users, on their baseboard size. do you -really- need to be that wide, in a nutshell.
If space is THAT big of a deal to you, use the 28 pin DIP version if the PIC32MX instead. If I remember right, all you have to add to it to get it running is a capacitor and a couple of resistors.
These things don’t want the whole PCB, they just want the 0.1″ next to them.
Dude, just buy another breadboard. They even click together.
I installed this on the Fubarino I got as a Hackaday prize and had a lot of fun playing with it. However, I did have to overwrite the Fubarino default bootloader with the Microchip HID bootloader in order to get the RetroBSD image to load (though this may have changed since then).
Seems like this issue had been already fixed. I just rechecked – latest Fubarino bootloader version 1.5 works fine with pic32prog.
RetroBSD definitely is fun!
All my Duinomites are “retrobsd”ed…
What else would you run on Duinomite?
DMBASIC is terribly outdated, MMBASIC is not free enough (at least for me), the TRS80- and CP/M-emulators are nice to see but more like archaeoligic stuff…
RetroBSD has AWK, BASIC, C, Forth, Scheme, …
It is a must see!!!
TI-99/4A emulator?
There’s a parallel project under way to put 4.4BSD-Lite on the PIC32MZ chips (LiteBSD). A little way to go yet, but gives far more features than RetroBSD (such as a full BSD networking stack).
LiteBSD is a bit slimsy yet, but promising. You can find some information here: https://github.com/sergev/LiteBSD/wiki