14 ms·
Chirimen, a Firefox OS-Powered IoT Single-Board Computer Developed by Mozilla
- raffomania 11y agoI never understood why people want to use browser technologies for the internet of things.
- Already__Taken 11y agoHave you seen this talk it might lend some persepctive - https://www.youtube.com/watch?v=Uy062kp-LM4 https://www.youtube.com/watch?v=Uy062kp-LM4
- userbinator 11y agoI think it's just unfamiliarity with anything else, and unawareness of the staggering complexity this introduces. Also, this is Mozilla who have a large concentration of people familiar with browser technologies. On the other hand, I think IoTs with web interfaces aren't a bad idea.
- jacquesm 11y ago> I think IoTs with web interfaces aren't a bad idea. I think it is. The internet-of-things does not need to suffer from massive power consumption and hard to implement on the micro-controller scale protocols. It needs something much more along the lines of encrypted UDP than that it needs to use 'web technologies'. Imagining a stack made on 'web technologies' running off power harvested over a relatively long period of time is painful.
- userbinator 11y agoI had in mind more things like routers, home automation management consoles, etc. which have had web interfaces for a very long time, but it doesn't take all that much power to do it[1], unless you want to run a full Linux kernel and JS and all that other bloat which tiny IoTs don't need. [1] http://www-ccs.cs.umass.edu/shri/iPic.html http://www-ccs.cs.umass.edu/shri/iPic.html (images also mirrored at http://cc2.savs.hcc.edu.tw/~chuavv/smallest/iPic/ipic.html http://cc2.savs.hcc.edu.tw/~chuavv/smallest/iPic/ipic.html )
- TeMPOraL 11y agoIndeed. Basic web technologies - client-side HTML, CSS and JavaScript (and I mean writing them directly, not via absurdly wasteful layers of JS frameworks) - are a great tools for adding UIs to connected devices. You don't need that much resources for a HTTP server if you already have TCP/IP connectivity, and you also don't need much resources to output some rudimentary HTML or to process POST requests. It's also a pretty cool tool for adding UIs to software you code locally. Embedding a HTTP server is simple in most languages, and for some cases, a web interface will be much simpler than building an equivalent from "native" UI components. -- Incidentally, one of the best demonstrations I saw of that was in the book Land of Lisp. The book teaches you Common Lisp by guiding you through writing a few games. At some point, you end up embedding in your game a very simple HTTP server - and suddenly, you get to have interactive graphics (via SVG) without the author having to teach you lots of stuff about some random UI library.
- IshKebab 11y agoI think a good option is CoAP.
- raffomania 11y agoThat's a good point. And running node.js on an IoT device still makes sense to me, but emulating a browser just seems unnecessary.
- gdamjan1 11y agoThen-again, chromecast does the same
- espadrine 11y ago> this is Mozilla who have a large concentration of people familiar with browser technologies. It does, but this is not the reason. Browsers have grown to contain a stellar collection of networking APIs (compared to the rest), and IoT devices depend on talking to each other. Indeed, the people at Mozilla working on this stuff know more about the nitty-gritty of the low-level than about standard Web development. The API is for the users.
- jokoon 11y agoBrowsers allowed developers to bring new things to customers quickly, because it was the only decent way of developing application that could work with Windows. It was the only way good open source software could "breach" how microsoft was doing business and putting barriers to the internet. The problem is that now, we should move on, and use something else than a browser. Maybe it involves inventing an alternative to html, or making all application networking p2p. Not talking only about bitcoin. Also, html is so much focused on TCP, and not on real time networking. I'm not dismissing the web, but to me it seems that it's the only decent standard to do things, and there's really nothing else.
- TeMPOraL 11y ago> It was the only way good open source software could "breach" how microsoft was doing business and putting barriers to the internet. Maybe I'm missing out on a big chapter of the history of computing, but I don't recall Open Source done via webapps until very recently. Most of the things browsers did were things that mattered only to businesses - like easier software updates, and much more control over the customers and their data. And the latter reasons are why web technologies are popular today.
- shawn-butler 11y agoWhen your only tool is a hammer everything looks like a nail.
- jlgaddis 11y agoThey're still trying to find a problem for FirefoxOS to solve.
- jokoon 11y ago"Make Real Things with Browser Technologies" How is that better or so different than making real things in C ? What problem would it solve? I get that js got very popular thanks to browsers, but does that mean we should use js for everything? Seems like mozilla is just trying to salvage firefoxOS.
- Already__Taken 11y agoI've developed a few things on my Espruino Pico[1] board, some Raspberry pi and also so arduino things. Just toys really. One of the nice this I've found with the Pico is because of the JS vm, when I don't do anything in the code all the power in the chip goes to sleep state, and just wakes up for me as I've got scheduled. Yes Arduino has sleeps but i've also go to go learn that as another thing, yes the Pi can be configured so but that's even more tinkering. JS seems like a really great "Just get it done" sort of phase to work in. After that you'd no doubt make a better job of the project with a myriad of other technologies. 1: http://www.espruino.com/Pico http://www.espruino.com/Pico
- swiley 11y agoC does that too unless you sit in a tight loop polling something all the time.
- mwambua 11y agoMost embedded applications consist of a tight loop of constant polling. People slow things down by using delays... But if you use the wrong sort of delay (read: the most popular one https://www.arduino.cc/en/Reference/Delay https://www.arduino.cc/en/Reference/Delay), you'll end up executing nops instead of powering down the processor
- benten10 11y agoWhat would then be the right way to sleep? I've always wanted to do something like 'sleep until event <X> and do absolutely nothing till them', but end up using the delay every time.
- cguess 11y agoCreating an entire HTML page structure just to get to the code because you need a <script> tag? Oh god.
- ju-st 11y agoStill better than binary created by an obscure toolchain. [wrote the comment before I realized we're not talking about µC stuff]
- geonnave 11y agoExactly what I thought. I think they could even use the package.json-file approach of nodejs for defining an entry point for the program..
- cguess 11y agoI'm not 100% against Javascript for things like this. It does make it much easier for non-C coders to get involved (although, to be honest, beginning C isn't that hard, and if you're going down this path you should try and learn it anyways). It's the pretense of putting it all in an HTML document. The point of HTML is not anywhere close to the use case here. Javascript is way beyond its browser origins, why would it still need to be coupled? I can't imagine tossing in an HTML parser simplifies anything either. Oh the memory though... GC's on embedded devices scare the hell out of me.
- 0x4a42 11y agoYou don't need to create the whole page structure like in the example though. html, head and body tags are optional under certains conditions. [1] I guess you could just write the example code like this : <!doctype html> <script src="gpio.js"></script> <script> var v = 0; GPIO.getPort(196).then( function(port) { setInterval(toggleLight, 1000, port); } ); function toggleLight(port){ v = v ? 0 : 1; port.write(v); } </script> Just having the script tags would also probably works in most browsers but it wouldn't be standard compliant (if you care about it...). [1] http://www.w3.org/TR/html-markup/ http://www.w3.org/TR/html-markup/
- vinceyuan 11y agoObviously Mozilla still doesn't know why Firefox OS/phone failed.
- SunboX 11y agothat's simply wrong. FxOS for phones didn't fail and Mozilla knows whats going on. Maybe some bad communication and PR, that's sad.
- vinceyuan 11y ago> FxOS for phones didn't fail Any new phone shipped with firefox os? Nobody buys it. It totally failed.
- SunboX 11y agoDepends on what you define as goal. It's mainly dedicated to developers. http://elioqoshi.me/en/2016/01/schrodingers-firefox-os/ http://elioqoshi.me/en/2016/01/schrodingers-firefox-os/
- wycx 11y agoSpecs: SoC: RK3066 Memory: DDR3 1GB NAND Flash: 1GB microHDMI female microUSB x 1 (OTG) USB x 1 microUSB x 1 (UART debug) GPIO > 1 (Configurable) I2C 2 UART 2 SPI 2 Audio analog stereo IN x 1 / OUT x 1 PWM 1 Analog IN x 1
- danielvf 11y agoTarget price?
- carussell 11y agoThe BeagleBone Black is $49.99[1] and has very similar specs. You can interface with its hardware using JS, and it already ships with the web-based Cloud9 IDE.[2] The main differences are: * BBB has 4GiB on-board storage vs Chirimen's 1GiB * BBB has 512MiB RAM vs Chirimen's 1GiB * BBB has no analog audio in/out, but Chirimen has no on-board networking * You can buy a BeagleBone board right now. If you want to trade off the micro HDMI port for two additional 4-pin peripheral connectors (Grove[3]) and trade the 5V power adapter requirement for the ability to power the board with microUSB, then there's the BeagleBoard Green for $38.99.[4] 1. http://www.mcmelectronics.com/product/83-16241 http://www.mcmelectronics.com/product/83-16241 2. https://www.youtube.com/watch?v=PA7E7b5mWh4 https://www.youtube.com/watch?v=PA7E7b5mWh4 3. http://www.seeedstudio.com/wiki/Grove_System http://www.seeedstudio.com/wiki/Grove_System 4. http://www.mcmelectronics.com/product/83-17001 http://www.mcmelectronics.com/product/83-17001
- IshKebab 11y agoYeah maybe ok for a very few IoT things, and for hobbiests. But nobody is going to make a smart lock or smoke detector with this. It's too expensive.
- vertex-four 11y agoNote that everyone's missed - it has HDMI out. This is looking more at smart devices that display information and which you can interact with directly, rather than devices which you configure occasionally and which are hidden otherwise. Additionally, this is likely a DIY/hobbyist board and a reference device - any major company doing their own thing will likely be building their own devices. Mozilla isn't in the B2B business.
- dafrankenstein2 11y agogood job mozilla. this will also promote firefoxOS
- dafrankenstein2 11y ago//We will share openly the firmware code, board design, manufacturing process, API spec, and all necessary sources. // thats a good thing bcoz firmware code is not open in Raspberry PI
- throwaway7767 11y agoIt remains to be seen whether this applies to all firmware on the device. Hopefully it does, but I've seen too many similar claims by hardware manufacturers that turn out to mean "only these specific firmware bits".
- mundanevoice 11y agoMozilla does so many things. I am afraid they loose their focus on one thing they could have done best. Make the best open source browser of the world. Look how they abandoned firefox OS phones. They shouldn't hope to become Google by doing almost everything Google does. Google is way bigger and has better Engineers.
- midgetjones 11y agoI agree with your general point, but saying Google has better engineers is a bit of an assumption.
- mundanevoice 11y agoI don't think it's an assumption. Just look at the contributions of some of the senior staff engineers such as Brad Fitzpatrick for GO, Jeff dean to name a few on their projects. I don't see any parallel at Mozilla who could rival them. Well, for really ambitious software projects, you really need someone who has tonnes of experience and can write really good code. Not to say that Mozilla doesn't have any, but I think they are not in the same league.
- Terretta 11y ago> Well, for really ambitious software projects, you really need someone who has tonnes of experience and can write really good code. Perhaps more important is permission to explore and invent and follow through.
- wolfgke 11y agoHow do you come to this conclusion?
- mundanevoice 11y agoPermission to explore and invent sounds nice and it is very educational. However, It is not a guarantee a good quality product. You need correct decisions and architecture to write any complex software and experience matters a lot in this space.
- Aandre 11y agoHigh paying, low stress jobs http://goo.gl/QThkna http://goo.gl/QThkna
- ohitsdom 11y ago<title>CHIRIMEN example - Led</title> Weird code like this is what you get when you apply web technologies to hardware. But I guess I should wait until their docs come out, maybe the title tag will be used by something.
- deleted 11y ago[deleted]
- Methew 11y agoWords most beautiful cities http://goo.gl/3eXWd8 http://goo.gl/3eXWd8
- msh 11y agoThey properly have a better chance here than with FFOS, there are no carries to interface with and the audience is developers who know mozilla in advance.
- beardicus 11y agoWelp. Two hours in and the comments are shaping up as you'd expect on HN. Is it really so hard to empathize with people who have different skill sets than yourself? Yes, C would be more efficient. Yes, this wouldn't be very cost effective used in a high volume product. Yes, it's a little funky to write a web page just to plonk your script tag in there. But, if you spend all day doing front-end dev with jQuery and just want to prototype some blinky lights or a flood sensor in your basement, now you've already got all the skills you need. You're not producing a million units, you're not worried about power so much as it'll be plugged in. An evening with a soldering iron and your text editor and off you go. Anyways. For prior art on this ecosystem, see janOS: http://janos.io/ http://janos.io/ which is basically stripped down firefoxOS which runs your app only (none of the launcher crud and such) in god-mode. It's actually quite fun to go grab a $30 phone off of ebay, and have a nice programmable screen and sensor suite with wifi, gps, and cell connectivity. Indeed, I find it more compelling than this board they're releasing, because I like taking advantage of the cheapness of mass manufacturing. The only downside is it's difficult to impossible to break out any GPIO on phones.
- pantulis 11y agoIMHO, this project is coming ahead of its time. I don't think it's going to gain traction due to the fact that the hardware requirements for the overhead imposed by the underlying web stack will make it too expensive.
- pjc50 11y agoI agree, and I come from an old-school C and embedded background. If you do it in C, you have the opposite problem: interacting with the hardware is easy, speaking to a web API becomes a huge pain. There's an "impedance mismatch", which has to be overcome somewhere. And computing power is getting cheaper and cheaper. We're at the point where if you have a little board in a case with some I/O connectors, the CPU will be the least expensive part. Casework and connectors will make up a surprisingly large part of the cost, often costing whole dollars! Edit: also, debugging your C microcontroller program can be quite a pain, even once you have a correctly configured in-circuit debugger.
- 11y ago
- T3RMINATED 11y agoHow about NO and everybody go and use www.tessel.io
- davb 11y agoI opened this on my phone, and just seen some links (MozOpenHand Links). I had no idea there was supposed to be more content here. The actual content is hidden for mobile UAs (I have no idea why, but it's very confusing). I'd have expected more from a Mozilla project. You can see what I'm talking about by spoofing a mobile UA in your browser.
- moondev 11y agoThis is pretty cool, but imo raspberrypi is making micro-controllers obsolete. Why would you bother with such a limited environment when you can have a full linux environment + GPIO for like $10 more.
- LukeB_UK 11y agoPower consumption.
- moondev 11y agoThat's fair. It's always nice to have options depending on use case.
- SunboX 11y agoMore fail safe (like Arduino is). Just plug the power in, instantly booting up and no worry to damage something if you just cut the power without shutting things down. And more energy efficient. You can't compare this Chirimen board to a Raspberry Pi, nor can you compare it to a Arduino. They are different. Maybe you can compare it to a Espruino board (but not really). They all will have their niche.
- TFortunato 11y agoIn many cases, sure, however there are definitely cases where microcontrollers still make sense, i.e. real-time control, low power applications. I work in embedded systems, and a lot of the reason you would choose a microcontroller is all of the peripherals that are also part of the chip. For example, if you are doing a project where you need to control motors, you can get a micro with a lot of built in high resolution timers , built in hardware for motor commutation, decoding of encoder signals, high speed analog inputs for feedback, etc. You would also typically AVOID having a linux environment, and opt for either a hand coded loop, or an RTOS which gives predictable, deterministic performance. In my particular industry (robotics), we definitely do like to use a more powerful computer with linux or some other high level OS on it for a lot of the high level intelligence, so a lot of what you end up seeing is almost a 'distributed system on a board', where you have a more powerful processor providing the intelligence, which then issues commands to the less powerful microcontrollers which do things like control motor torque, sample sensors, etc... This doesn't even get into things like power consumption...simply put you can have microcontroller based systems run for months on a single coin cell battery, which is going to be a hell of a lot harder to pull off on a RasPi / linux based system. All that said, for a lot of projects where you just want to monitor a few simple sensors, or do a basic home automation type of project, a RasPi can be a great choice! (Even if my inner engineer is screaming 'your over complicating it!') But there is definitely still a huge need and use for micro-controllers as well. Hope that helps answer your question!
- daveloyall 11y agoOff topic: TIL that in Japanese, you start a letter by stating YOUR name, rather than greeting your audience. Accurate?
- deleted 11y ago[deleted]
- ilaksh 11y agoI am actually hoping for something like web assembly versioned modules with a p2p module registry to become popular for iot, blockchain, everything. Web assembly is actually a language-agnostic abstract syntax tree which can be JITd/compiled across architectures.
- Animats 11y agoProgramming a single-board computer in JavaScript is reasonable. But why embed the JavaScript in HTML? There's no browser, no screen, and no user.