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.
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.
https://developer.mbed.org/blog/entry/Using-the-new-mbed-pow...
Since this is a part of the new mbed-2.0 os , i think there are already 5 micro controllers that support it.
Seriously ? The only build/library ecosystem that I hate more than C++ is javascript/node - it has all the same problems (a bunch of competing and incompatible standards/tools/patterns that do the same thing) but lower quality because of so much noise from low barriers to entry (hey at least you need to get C++ to compile on one compiler - that's something).
Yes. Jeff Atwood said it should be and so his legion of followers must make it so.
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:
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.
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.
OTOH, CPUs are now so cheap they have become replacements for fixed logic devices.
Solid clean C API. Phone does all the heavy web-lifting, it really is best of both worlds.
Also PebbleCloud is one of the slickest web IDEs I've seen(working emulator streaming over VPN!).
Particle (particle.io) does a pretty nice job of bridging this gap in my experience. You still write code in C-like Wiring, but they have built-in APIs for storing data in the cloud and calling webhooks. It's not as simple as interacting with web apis from JS, and the fact that it relies on their cloud service would make me hesitate to use it in a commercial product. But for my home play projects, it provides a really nice balance of using C for the hardware stuff without making the networking stuff a major pain.
JavaScript/Python/etc on RaspherryPi or this new Mozilla thingy are interesting too, though will drain your battery faster. You need an OS on a 32bit CPU. If it's connected to the web you should also update the software stack.
While I understand your desire to use javascript to program it, the API presented thus far is slipshod and half-assed. This is barely a tech demo, and is going to need a lot more structure and development for it to be compelling as an IoT device that's more than just a toy.
On the other hand, 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.
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.
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.
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.
The first thing they made was a web-browser, because they had all the pieces and all the people right there, they had a good idea how to do it, and because the biggest threat to openness, innovation and opportunity on the Web at the time was the dominance of Internet Explorer.
These days, Mozilla must be less focussed because there's no single dominant threat to focus on. There's things like video patent codecs, DRM, promoting HTTPS, the ever-increasing complexity of the browser stack, the enticing power of native mobile apps, the lack of an awesome funding model for freely-distributed content, the return of walled-garden content platforms...
They could focus on making Firefox awesome and abandon all the rest of those issues, then we'd have a nice browser but we might have a much less interesting and useful Internet to browse with it. I do not envy Mozilla's leadership in the slightest right now, they're making a bunch of very tough decisions and nobody will know if they did the right thing for maybe five or ten years.
I don't think this is the right way. Having two much on the plate can actually be negative and you might end up doing nothing really well. I don't think that Mozilla should only be working on Firefox, but rather select few more which manage to do properly. We need a focused Mozilla, not a scattered Mozilla which tend to do everything that's a FAD (For eg: IOT)
Every year, I weigh whether I should throw some bucks to the Mozilla Foundation. I've been using their browsers, under one name or another, for over 20 years since the day I first discovered the web. It's been the most important piece of software in my life.
I appreciate what they (along with Apache and BSD) have done in providing an open source counterexample for the GPL, and opening the door for open source in corporate software development.
Moreover, I worry about their long-term financial viability. Yahoo is NOT going to be around in its current form forever. I'm not sure whether there's any other "anchor sponsor" on the horizon that would fund Mozilla at the same level as Google or Yahoo without forcing compromises in principles.
However, I still just haven't been able to make myself click the donate button.
The things that I ACTUALLY care about from Mozilla (i.e. Firefox and Thunderbird) are things that fell into their lap from Netscape back in 1998, and which they've incrementally tweaked or re-worked in the two decades since. I don't feel a sense that anyone in a leadership position at Mozilla really cares about those things. I think they see them as "legacy software", providing only a "brand" to be "leveraged" in squeezing a bunch of other junk onto their resumes.
They work on a lot of interesting technical things behind the scenes, but little of it appears to have traction or visibility. The things that ARE promoted by leadership and marketing are "day-late-and-dollar-short" imitations of whatever Google did a few years prior. I don't care if you create a "me too" copy of Android without any phone carriers to sell it. I don't care if you create a "me too" Raspberry Pi, that will be lost in a sea of other coming-soon hobby boards by the time it's actually released.
The Wikipedia article on Mozilla suggests that their annual budget has grown from $2 million initially, to over $300 million today. You know what? They were a better and more RELEVANT organization when they were closer to the $2 million mark. I don't want to donate money so that a band of Google-reject executives can pad their resumes with nonsense and shut down Thunderbird.
I almost kinda HOPE that their funding collapses in the wake of Yahoo's death, so that the leadership bails and they're forced to downsize into something sensible and focused on the flagships. I just hope that the perhaps-inevitable reformation can happen gracefully without being so jarring as to end Mozilla altogether.
First off, Mozilla didn't have FF "fall into their lap" from Netscape. Netscape spun it off and gave birth to Mozilla. They absolutely do not consider Firefox legacy software and you'll need to back that up somehow for me to believe it.
They may very well be a better company at $2M than they are at $300M, but the back half of your comment sounds bitter and angry at what appears to be Mozilla's recent announcement on Thunderbird.
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!
* Power consumption
* Maybe your overall budget is less that $10 for everything
* Size: one project I'm working on has a 1.5x2.0" space available for electronics
* Start time. Maybe you need to get in control within 50mS of power on before that actuator starts flailing wildly around.
* Control over the entire stack. You can't always trust the code running underneath you.
I could go on, but you get the gist...
* More IO options
* Arduino libraries (there is a easy to use lib for every component/sensor/...)
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
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.
* 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
2. https://www.youtube.com/watch?v=PA7E7b5mWh4
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...). void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
From my experience of teaching many non-programmers how to use this sort of device, I think I'll stick with Arduino for now.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.
thats a good thing bcoz firmware code is not open in Raspberry PI
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.
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.
Accurate?