OpenMoko: 10 Years After
vanille.de
vanille.de
But let me tell you about the device:
1. You couldn't even make a phone call with it. There was a hardware bug that stopped it from making phone calls. It was basically a PDA...
2. If the battery ever ran out, you couldn't start the phone anymore. You had to have a spare Nokia phone that you'd use to charge that battery. Thank god they were using Nokia-compatible batteries. The gist was, never ever to let the phone's battery reach 0%.
3. The development of any UX components was cumbersome. They always insisted in supporting GTK and another platform which I forgot its name. They were such a small team and yet they were building two projects which essentially were doing the same thing. Why?!
Those three were just a few problems. The Freerunner was definitely not a user-friendly phone.
I hope alternatives like the Neo900 make it off the ground, but I'm not holding my breath. Most people just don't seem to care about open hardware when they could be getting the latest, fastest SoC for their $varPhone. Maybe it makes me weird that I'd rather use an open device with a single ARM core at 800Mhz than a closed one that uses the Snapdragon 835...
IMHO, it's neither a question of being weird nor about the power of the phone. The problem is that choosing an architecture that isn't mass produced, you are doomed to disappear no matter what.
I wouldn't care to use an underpowered phone, provided that it's cheap and widely available, being "cheap" an (important) part of "widely available". A hackable phone would generate interesting apps for a wide market. But you need that there are a lot of people that can buy it and has some problem accessing an Android and its apps.
We also had multiple batteries and multiple beefy micro USB chargers (used later on our G1s) as well as external Nokia battery chargers around the place.
I think I managed to take a call once. I could never send SMS, but I would play a lot of numptyphysics on the MBTA with the combination ballpoint pen/mechanical pencil/stylus I bought.
Sean visited us in the office a couple of times beforehand. I remember showing him some of the HTML tricks Apple were doing for Mobile Safari with viewports and fullscreen things, I don't think anyone ever implemented them. This was pre-App Store too, I think.
I remember being so wary that someone would steal my awesome new phone at first, but that quickly wore off and I went back to my Nokia flip phone until Google had developer G1s (ADP1) with a fancy backplate on them.
Being an early adopter is not for everyone, for sure. But being the only adopter is definitely a PITA :)
My most memorable moment with the FreeRunner was when I finally received my G1. The screen on the G1 was so much brighter, the phone itself was far more responsive, and it had EDGE data service (my area didn't have 3G). I never bothered fixing the usb port that I broke because the G1 was so much better.
If I recall correctly, the OpenMoko didn't have working CPU frequency management; it was always running at the maximum CPU frequency.
I actually wrote something to manage the CPU frequency for the GTA01, but never pushed it upstream; by then, the GTA01 was a dead end, and the GTA02 used IIRC a different chip.
Edit: for the curious, here's the code: http://repo.or.cz/linux-2.6/s3c2410-cpufreq.git/refs
>However, the sad truth is that it looks like there is no business case anymore for a truly open platform based on custom-designed hardware, since people refuse to spend extra money for tweakability, freedom, and security. Despite us living in times where privacy is massively endangered. If anyone out there thinks different and plans a project, please holler and get me on board!
I recently tried lineage, ubports and plasma, and though I liked ubports, lineage was a breath of fresh air. Selinux, opengapps, regular privacy notifications, twrp, and privacy and security seem to have not taken a back seat in general. Sign me up.
If there hadn't been contracts 10yrs ago, I probably would have gotten an openmoko. Wanted one badly. If lineage, ubports, and plasma among others can keep developing alternatives to stock android, no reason to see why at least some or all hardware doesn't follow. It's taken AMD the better part of 10 years to have open source drivers that are as good as their closed source drivers on almost all of their GPUs if I'm not mistaken.
Which raises the question: if you want a phone that can run a FOSS mobile OS, what do you choose today? Nexus 5 and OPO were great a few years back (I bought the latter) but there is a need in the marketplace for (read: I need) an updated product that can run such a mobile OS.
This allows projects such as Mer, Plasma Mobile, LuneOS, UBports and AsteroidOS etc to pool efforts without any distro-specific assumptions.
Google's project treble might make haliums' job a bit easier, so you might see halium on more devices than you'd think. Just speculating.
If you want an open source project to work, it has to already work and then have easy places where people can start making changes. Otherwise, they don't know how much work is needed to get anything done, and don't want to risk weeks of work for minimal, if any, results.
> People only really contribute when they get something out of it. When someone is first beginning to contribute, they especially need to see some kind of payback, some kind of positive reinforcement, right away. For example, if someone were running a web browser, then stopped, added a simple new command to the source, recompiled, and had that same web browser plus their addition, they would be motivated to do this again, and possibly to tackle even larger projects.
> We never got there. We never distributed the source code to a working web browser, more importantly, to the web browser that people were actually using. We didn't release the source code to the most-previous-release of Netscape Navigator: instead, we released what we had at the time, which had a number of incomplete features, and lots and lots of bugs. And of course we weren't able to release any Java or crypto code at all.
> What we released was a large pile of interesting code, but it didn't much resemble something you could actually use.
"nomo zilla: resignation and postmortem". 1999. https://www.jwz.org/gruntle/nomo.html
To view this article, right click and choose "Open link in incognito window" or click https://anon.to/?https://www.jwz.org/gruntle/nomo.html
Maybe he's got a whitelist for some specific articles he allows HN to view.
Edit: never mind it's just my browser somehow stripping referer headers.
$ curl -IA "foo" https://www.jwz.org/gruntle/nomo.html
HTTP/1.1 200 OK
$ curl -IA "foo" --referer "news.ycombinator.com" https://www.jwz.org/gruntle/nomo.html
HTTP/1.1 302 Found
Location: http://i.imgur.com/32R3qLv.png
Are you using an addon that strips referer headers?Hardware is much harder to do, the more you screw it up.
Designs which don't work - i.e. basic power management - will cripple early-stage hardware development, and its one of the reasons hardware, is well .. hard.
OpenMoko didn't screw up, open-source-wise, no sir. I think you are mistaken in this claim.
Where they screwed up is not getting the hardware really nailed, such that it warranted actual production in the 10's of 1000's of units. It had to work, and you have to ship in the 5x'es before you gain any traction with a new hardware platform.
OpenMoko was many things (I still have 3) .. but it wasn't a failure of open source software. Without that stack, the thing wouldn't have even gotten off the ground. It didn't reach orbit, because of that 5x traction ..
> Is this really an "open source" thing?
Well, that the source be open to hack on is something that's pretty much a precondition to the situation where some random person finds themselves attempting to contribute to someone else's project. If you know of a way that's possible with anything that isn't open source, then maybe give an example? (If you interpreted my comment as one intended to be an argument against open source—and in favor of closed source, say—then you interpreted it incorrectly.)
> Is it a bad thing
A project that seeks contributors but exists in a state where contribution is more difficult than it could be is very much something I would call a bad thing.
> normal software development
"Normal"? Maybe. Yes, even. But not an intrinsic side effect of trying to develop software or run a project.
You could have made your point yourself, but you quoted jwz at length because you felt it loaned more credibility to the idea than if you had used your own words. I guess that was your intent, and I could be entirely wrong, but I don't blame someone else for making that conclusion.
> Either the message is true, or it isn't.
This is a discussion board. People discuss ideas. He did address your point, but he also discussed a tangent you introduced.
(apologizes for responding to you and not GP directly with some criticisms. I had a response typed somewhere...)
Just look at what people are doing with RPis and various radio boards.
There was one such project posted on HN recently that had a RPi Zero W hooked up to a touch screen and a mobile radio. All battery powered.
In a sense the Openmoko was too early and too bespoke. Thus driving the cost of entry for would be tinkerers through the roof.
The RPi was ready to roll out of the gate - they had a working Linux distro from the get-go that actually worked. They also provided really simple instructions on how to get said Linux distro onto a SD card. You can boot the RPi and have it be useful within a matter of minutes.
Openmoko simply never got near enough to working where the community felt like picking it up and running with it.
I don't think Openmoko was premature - it was incomplete. You're not going to get much participation from the community if doing anything useful on your platform first involves fixing/finishing the platform.
Broadcom, according to the wikipedia page for VideoCore, did however make a couple of Cortex-A9/A7 SoCs that made their way into low end 2012-3 era Android phones.
Perhaps a startup might recycle old Broadcom-based HTC and Samsung models in collaboration with the RPi team.
A RPiZ with a mobile data connection but no screen is still a potential IoT platform etc.
Openmoko with its bespoke board lived or died by how well it performed as a phone.
It is classic for FOSS wonks (I am one!) to forget that most people don't care about the principles of FOSS, they just care about the practical implications of FOSS which aren't always the same thing.
> it seemed at the time like people really wanted the open software and platform
vs.
> It is classic for FOSS wonks (I am one!) to forget that most people don't care about the principles of FOSS
"If you really want an open source platform" is interpreted to mean different things to different people. Open source may literally mean "open source" without the associated zealous frothing at the mouth RMS association. No contradiction here.
> it seemed at the time like people really wanted the open software and platform
is true, there should nevertheless be a sufficiently large audience. The product will perhaps never become mainstream, but the audience should be sufficiently large that a company can survive on them as customers.
It's sad that their approach failed though, I'd really like a modern device with something like OsmocomBB available right about now...
Not many people know this, but OpenMoko was largely rolled by Dash Navigation -- https://en.wikipedia.org/wiki/Openmoko#Dash_Express. This gave Sean and Co. the cash and ability to develop the OpenMoko, but unfortunately, Dash failed, because as a CNAV device, it was too little, too late as compared to the ultra-converged cell phone. I wish that they would have found other entities to back the project, but the market just wasn't there yet.
The next one, which was definitely going to be the real future of Openmoko, was always a few months away, and as soon as it got close you'd find out the team had ditched the framework and were already working on the next next one.
As a result, as someone who had wanted to jump in and start experimenting with writing application code, there wasn't really a platform to do that on. So after a few months of frustratingly dropped calls, or silent calls and unsent text messages, I went out and bought a small, shiny feature phone and didn't look at another smartphone until the nokia N900 showed up.
Because nobody is there to crack whips about quality targets etc, devs keep wondering off path as they run out of shiny features to implement, or find themselves going "I could do X if only...", and thus a new codebase is birthed...
The project was run by a company who had employees and at least one manager, but nobody was setting a direction for those employees to move in, and making the hard decisions (like "no, we're sticking with this stack to get something stable and production ready, even if it is flawed").
1 - https://gitlab.com/android-on-freerunner/android-on-freerunn...
Its developer community was fragmented among a half-dozen different distros from birth; Openmoko themselves forked their own distro so that even if you wanted to run the "official" one, you had two incompatible choices - and neither the two "official" distros, nor any of the user-developed ones, supported all of the hardware + apps necessary to actually use this thing as a phone. (I.e. one might have audio but not support making calls; another might support making calls but no audio volume; a third might lose all your contacts, etc.) If we could have taken the union of features from all these distros, it could have had a great smartphone OS; that just goes to show what gratuitous fragmentation cost us.
As for hardware, we were screwed from both sides by the hardware companies (flaky drivers) and Openmoko's own circuit design. Due to driver/card incompatibility, I never found a high capacity SD card which would work completely reliably in the phone; only the cramped 512MB SD card which came with the phone worked reliably. Mind you most of the time the problem would show up after you spent a few hours compiling & setting up Gentoo or whatever on a new 8GB SD card only to have the 3rd boot fail with a corrupted card.
And in the circuit design side, from the specific problems the phone's board had, I get the feeling Openmoko's engineers were computer engineers but not very knowledgeable in audio electronics. They failed to properly separate and route the audio ground, nor to give a good range of audio volumes, and connections for the mixer chip were a mess. Actually, electrical noise was a problem in other areas, as well; accessing the SD card generated noise or RF leakage which would cause the GPS unit to lose it's lock. (So good luck loading a map while navigating.) Interference in bandwidth (albeit just in contention for buses, not actually noise) was also responsible for the limitation of not being able to use the SD card and talk to the video processor at full rate at the same time - so playing video from the card was not workable, either.
I had some fun with the device, learned a little bit, and ultimately rebuilt it into a larger case with a larger battery and an amplifier for the earpiece. However, I would have been better served if I had done all these things on a development board, rather than being tricked into buying a prototype development board shaped like a phone. The experience led to me "missing the boat" on getting into mobile development; it took a long time for me to get another smartphone, because I had blown my money and my efforts on the freerunner. For the next couple years whenever I would consider getting another smartphone my then-wife (now ex) would counter "yeah that's what you said when you wanted to buy the freerunner - and you have that and you don't even use it!"
I used freerunner for quite some time as secondary phone, developed an app or two in python/enlightenment (efl), wrote much of the SHR wiki manual and ended up not even considering Firefox phone or Ubuntu phone at all...
I don't care how free your phone is, if it can't make phone calls I don't want it, nor does anyone else.
I keep wondering if there's something I could do with it. At this point, though, it's probably more a historical footnote than anything.
Half a year later, nobody talked about it anymore and it was iPhone all the way.
I wasn't going to, because I didn't have one - but one of my coworkers at the time had one, and we absolutely made fun of him that he had to first get a new kernel to be able to either send a text message or make a call (don't remember which of the two, the other one didn't work at all).
It was so dumb and jittery I microwaved it a little and then swatted it off my roof with a tennis racket.
Was fun, would destroy again 10/10