ESP8266 Basic Interpreter Lowers IoT Entry Bar For Amateur Programmers (esp8266basic.com)
New submitter mmiscool writes: ESP8266 Basic is a project less than 6 moths old. It is open source and designed specifically for the internet of things. The ESP8266 microcontroller costs less than $3, and once the basic firmware is loaded to the device a user can connect to it using Wi-Fi and start programming right inside their web browser. No wires, no software or plugins to install. Just a simple text editor. There is now a community, primarily older folks who fell in love with Basic on the Commodore, who are using it for controlling a variety of projects. The code is amazingly simple and includes commands for interfacing with neo pixels, OLED displays, Temperature sensors, hobby servo motors and of course the blinky LED. It also provides commands for browser widgets that can be used to construct interfaces for the device like textboxes, buttons, sliders and dropdowns. The bottom line is that Basic is not dead, and has finally made its way into the internet of things.
Make last year ran a three-part series on the chip (here's part one), but things have advanced quite a bit since then, when people were first noticing that the ESP8266 is more powerful than the tasks for which it was first marketed.
(Blushes)
No, this is for those of us who were already brain-damaged by BASIC in the 1980s.
This is just retro drugs, move along kids, nothing to see here. No, son, that's a... vase with a smaller vase on the side, don't look at that. No, don't look under there.
I started with Apple Basic, not Commodore. But I had a Timex/Sinclair at home. 2K RAM!!!
All those empty listings makes you feel like you're in one of those old Soviet supermarkets.
I would like a temp sensor please.
We don't have sensors
Then I need a spool of white and red wire
We don't have wire
Robot kits?
Nyet
Silly stuff...
All our stuff is very serious
Basic is not dead, it just smells that way.
Sure, there are outliers, but they'll be dead soon.
wasn't it 3k?
Or, the Arduino/RPi kiddies have something accessible to them to engage and inspire them to learn something more.
Much like BASIC did back in the day on a cheap computer, inspiring us to learn more about programming.
The cost is what amazes me these days. This thing has two radio cores, two processor cores, and a host of other peripherals, and it's dirt cheap.
Basic was how you used computers back in the day. The market moved on to boards connected to the computer but basic couldn't access them. Every board came with a one-off expensive development kit, more trouble than it was worth. So now computers are only good for gossiping on facebook, Time to get back to control of the technology.
Comment removed based on user account deletion
Didn't you know Skynet is written in BASIC?
ESP8266 Basic is a project less than 6 moths old
fewer than 6 moths.
10 WRITELN "FROSTY PISS"
20 GOTO 10
30 REM the lameness filter really is a piece of shit
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Thank you, you are so right. Programming is fun, not just for some notional neckbearded priesthood. Yes, if one needs to do something 'serious' (avionics, billing SCADA) the approach must be more rigorous (looking at recent electric grid exploits, apparently that's not true of SCADA, in fact), but kids don't normally do that. It's a 'way in'.
On y va, qui mal y pense!
So weaknesses and constraints on BASIC on the C64 impact it's usefulness today?
I have a BASIC compiler for the PIC microcontroller that produces tight little binaries. It has a nice useful library of I/o functions.
wake me up when they ported the trs80 version of hunt the wumpus.
"oops, bumped a reset button. the ip address has moved."
--
"It is now safe to switch off your computer."
With ~$400, ebay, a laptop and two weekends, you can build every possibly rpi/arduino projects/hardware configration. There are a finite number of environmental parameters that can be measured (temperature, pressure, gasses, voltage, position, etc) and external effectors (voltage, current) are an even smaller set.
It has a nice useful library of I/o functions.
Libraries are usually more important than the language, anyway.
"First they came for the slanderers and i said nothing."
believing that electronics is something anyone can do
Electronics is something that nearly anyone can do. That is not the same as saying everyone can do everything in the field (heck, many EEs will never be able to do certain things outside their specialization even if they dedicated their life to it). But that is irrelevant to the situation many people have where they don't need to do something difficult or complicated, just something simple but niche. Might as well complain such hobbyists are not learning Swahili either... because that is also unnecessary for most small projects.
all those companies charging thousands of dollars for their products are just ripping us off.
Some rip people off, but a lot of the time it just comes down to targeting a different audience. When you need to do something less commonly done, you often either end up spending a lot more to get something more customizable or something with a larger feature set, which is a waste if you didn't need any of those other extra (or even basic) features.
This isn't specific to even hobbyists, although in a business setting sometimes it is cheaper to blow thousands on a overkill off the shelf part than make a custom solution. But that isn't always the case. On a project I previously worked on, a sensor had an unusual communication protocol and was usually used with a hand held readout, but one day we needed it to be logged and in a compact spot without external wiring. The company only offered two options: a $2k usb adapter or a higher priced quote to make something custom for us. The hour it took an EE to make an Arduino communicate with the sensor and log what we needed cost us far less time and money. You could argue about there being faster and/or cheaper boards out there or that it would be better to make a custom board, but that would take more time, and hence cost the company more than just using what he had sitting around in a desk drawer. Saving $0.50 on the hardware or a faster clockspeed wouldn't have produced a better result, and would just be penny wise and pound foolish.
Whose idea was to choose an interpreted language for the extremely slow 8-bit home computers?
The summary doesn't tell me where from though.
I'm not THAT old, you insensitive clod!
these, its unclear what is the device and what is an accessory for the device. Also unclear which are legit sellers and which might be spam.
The the link to the ESP-01 in the make article leads to a discontinued page.
Anyone got a link to a known reliable vendor to buy these?
That's a valid point. Before you connect a "thing" to the internet, it would be wise to think about what happens when it's hacked. Unless the code is written by someone trained in security and then reviewed by someone else well-trained, it is reasonably likely that it will eventually be hacked. Internet-connected TVs have been hacked, wifi cameras are frequently hacked ...
In some ways it's unfortunate timing that the internet has become so pervasive at the same time that simple programming has become so easy you can write software without any training or experience. It's resulted in a lot of very bad and dangerous software on the internet.
Since it hasn't been mentioned here. The ESP8266 is no stranger to interpreted languages. The NodeMCU firmware offers a Lua interpreter. It's been around for longer than this BASIC project and is now fairly robust. I have created a couple of projects with it and been pleasantly surprised, particularly with support for the u8glib library. This is just outstanding.
There's lots of reasons to like an interpreted language on a device like this. That said, the hardware/libraries integration and maturity is way more important than exactly what interpreted language. I feel a tag nostalgic for BASIC but I don't really see the utility over the excellent NodeMCU firmware. There's even an online firmware builder that allows you to select which features, ostensibly hardware protocols and the like, to bake in so you can maximize how much free heap there is. http://nodemcu-build.com/
I remember when Basic was spelt BASIC, as in.. you know.. an acronym.
Easier than JavaScript, but I guess it would never catch on...
A basic word processor with search, replace, and basic formatting.
A programmable calculator containing a limited functionality spreadsheet (10 rows, 10 columns, basic math functions only)
A tetris clone.
64K, Monochrome green screen, in TRS-80 Model III BASIC (not that CoCo "BASIC" used by those young whipper-snappers on those cheesy white computers with crappy keyboards). Back when a 3"x5" card could hold all your assembly opcodes on one side and all your BASIC keywords on the other. Z80A Machine Code by hand, no compilers to do the dirty work for you.
What a limited imagination you have.
There is older and more mature port of Python to ESP8266
There is absolutely no point in using BASIC when better tool is available.
And now, it is a great idea for newbie programmers to write apps for those internet connected devices in BASIC?
They don't have to be connected to the Internet, you know? Unless you've got a modem/router running in bridge-mode the devices will by default be running behind a NAT and I doubt most of these folks will go to the length of using UPNP to specifically request for the modem/router to open ports to the devices from the Internet.
I am right now messing with nodemcu but it is somewhat flaky so I might go to the Arduino route. These devices are kind of annoying in that if you want to send data larger than a single packet you have to break it up yourself, their TCP stack is shite. Otherwise they seem pretty cool.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Playing in the street and playing with guns is "fun". Six year olds driving cars is "fun". Programming undertaken by the clueless results in a mess of bugs and vulnerabilities. Hell, it's bad enough even with the best programmers.
The Soldercore board+BASIC combo looked very good.
However, it doesn't seem to have gained enough traction to stay in production.
The SolderCore board had a STM32 ARM-M3 CPU with an interactive and internet-enabled CoreBASIC interpreter.
http://soldercore.com/software/corebasic/
http://soldercore.com/products/soldercore/
. ... a bunch of people who know little about security programming the IoT.
Just what we need
"ESP8266 Basic is a project less than 6 moths old"
It would be more impressive if it were less than 6 butterflies old.
I suspect that with BASIC not relying on pointers at all for general function, security for IoT is probably a lot better than when C is used. I don't think your pessimistic comments about BASIC are really valid. Also this BASIC implementation is interpereted, so as long as the interpreter is secure with bounds checking, BASIC programs could well be very secure and correct, much more than many people's C sketches are in Arduino!
For those interested, there's a project called MicroPython that implements a full-featured Python 3 interpreter on a microprocessor. Like the BASIC chip it's interpreted so it's slower than bare C. But it does let you use all the niceness and rapid development capabilities of Python on a 32-bit microprocessor.
Wait until IPv6 becomes necessary...
Why BASIC indeed. BASIC is interpreted and SLOWWW.
It should use JAVA.
Java is FAST!
For more speed, it should run a java machine, written in java, running on a java machine written in java!
more indirection == more speed!
As was Pascal. Probably because managers only took one programming course and so t was the only thing they felt comfortable with managing. Just wait the push for "everybody must learn to code" will produce a drive to use a teaching language such as Blocky. I can just see the conversation:
Tech lead: And so we're looking for a mixed Java/Node development team to push out the App.
Manager: Why? There so difficult to use, why not use Blocky it's easier. Besides everyone knows Blocky they taught it in grade school.
Tech Lead: It's easy for some problems but totally unsuited for our application
Manager: Programmers are smart you can make it work. Besides I read about a WebBlocky project the other day on Slashdot the other day.
Tech: I saw that too it's in version 0.1.0 and if you read the guy's CV he has never had any training or experience in language design. He started it because, and I qoute, "It's kewl and 7337 and Java and Pythone are crufty and not web scale". He even named programming features based on female genitalia.
Manager: We made the decision a week ago while you were having your teeth cleaned. That'll just attract more programmers and I am the manager so figure it out.
putting the 'B' in LGBTQ+
lolz at using heap on mcu
We're seeing it in the form of increased productivity rendering jobs obsolete. With fewer jobs people have to work more hours to make the same pay, resulting in yet more productivity and still fewer jobs. The Atlantic has an article on it. tl;dr: Our productivity gains kept pace with what Keynes predicted but hours worked stopped dropping in the 70s, resulting in massive inequality and stagnant wages for workers.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
To a WiFi LAN. Unless you're using some sort of "cloud" library in your application (and it doesn't sound like this ESP Basic thing does), it's no less secure than any other device on your network, and if your network isn't secure then you've got far more tempting targets for an attacker than a microprocessor board.
Aside from price, that's one of the things that makes the ESP8266 device more attractive to me than one of the various boards that come with some sort of cloud tie-in; it's my decision what it's allowed to do.
I've been playing around with ESP-12's for the last few weeks and what they're capable of with the libraries available is, for the price, nuts. It's as much work to properly debounce a lousy switch than to build a wireless HTTP server with OTA updates.
Log in or piss off.
that electronics is something anyone can do
I recently breadboarded a circuit to translate the input of a nine-position DIP switch into the output of a four-line BCD (Binary Coded Decimal) using an 74HC147, and a 4511 to display the number on a seven-segment LED digit. I came across a web page with a nearly identical circuit. Based on the comments by the Arduino/RPi kiddies, they have no clue to how the circuit works. One person asked why the BCD lines were inverted between the 74HC147 and the 4511. Reading the datasheets made it clear that the 74HC147 outputs ("0" = 1111) were opposite to the 4511 inputs ("0" = 0000). If you don't understand how the circuit is supposed to work, you're not going to understand the circuit when it doesn't work.
See, all the mod-downs to '-1' don't get what I'm saying at all: I'm not saying microcontrollers or even products like Arduino and RPi are bad, I'm saying I'm sick and tired of these little millennials who are so clueless as to think that you have to use a microcontroller/microprocessor for everything, that anything using analog circuitry is 'old fashioned' and 'useless'; I've had these little shits say 'you can't do anything useful without a microcontroller' which is utter and complete bullshit. Meanwhile they literally struggle to make an LED light without burning it out because they don't even get Ohms Law and DC Theory, let alone AC Theory and RF. Some of you think these products are 'gateways' to real electronics, but considering the current trends in the world, all they're doing by doing all the hard parts is to encourage kids to be lazy and not learn anything at all, while they think they're badass engineers because they can hook up a few wires to some pre-fab electronics and write a few lines of code in a sanitized language. Do you know that I work with so many so-called 'engineers' who, if you gave them a box of parts to make a crystal radio and told them to do it, they wouldn't have any idea how to do that or how it really works? They'd have to Google it. One young engineer I worked with didn't even know the difference between positive and ground on a power supply, hooked up a supply rail to a DUT on a test board backwards, and when I called her out on it she scoffed at me and dismissed me as if it didn't matter at all. Is this competence? No, it's not. This is the world I'm afraid these products is creating: Learning the basics and having a thorough understanding of technology is 'boring' and 'useless', just leap-frog around and learn the bare minimum to do what your boss wants, and who cares about the rest? People wonder why the U.S. is becoming a 'service economy' and why we don't build anything here anymore and this is why!
Now I'm going to bugger off and not even look at this discussion anymore because 99% of you are just going to continue to flame me into the next Century because you don't see what I've been seeing and think I'm some sort of troll or something. Whatever. Many of you are still relatively young and will have to live in the fucked-up, dystopian world you're helping create by letting the younger generation take shortcuts and the easy way instead of Doing The Work; be sure to enjoy your Techological Feudalism, and be frustrated with all the serfs who can only do what they're told and never able to figure shit out for themselves.
*DROPS MIC*
Object based programming: the Get-Off-My-Lawn of mathematicians everywhere. Why can't Jenny or Johnny code? 'Cause OO is designed to be nearly incomprehensible to humans without years of careful brain damage.
I am 43 years old, and I learned:
BASIC when I was 12
LOGO when I was 13
COBOL and RPG-II when I was 15
Pascal (the only language I learned on my own and not in classes) when I was 16.
C when I was 19
Shell Scripting (including AWK) when I was 29
Of all those, I only remember BASIC, C and Shell Scripting.
If this will let me prototype an idea fast and cheap, then it is welcome.
IIRC i read somewhere that Ken Silverman (of BUILD engine fame) used to try new algorithms first by coding them in BASIC. If that new ALGORITHM worked out as intended, he would either refine the coding until he got the intended performance, or compile the basic, or recode in C or ASM... So, if it is good for him, I guess is good for me (and a lot of other people).
Besides, there have been BASIC compilers for a long while, so, if the prototype is a success, I may as well compile, or, if push come to shove, re-write in C.
*** Suerte a todos y Feliz dia!
The Terminator actually used Apple ][ assembly.
http://mentalfloss.com/article...
Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
Some of you think these products are 'gateways' to real electronics, but considering the current trends in the world, all they're doing by doing all the hard parts is to encourage kids to be lazy and not learn anything at all,
Except that is how gateways work, with just about any hobby. The majority of people will not learn about a topic in depth that they start as a hobby. This is not specific to electronics, and is not something new, but has been around for many decades and probably longer. My grandfather, born in the 1890s, had hobbies that he dabbled in and far fell short what professionals would know or think you should know, but that didn't prevent him from getting done what he wanted and enjoying it as a hobby. The amount of people who learn things in detail is a long tail, and even then, it is still a hobby with finite time that makes it rather difficult to be compared to someone who spent years and school and has decades of day to day experience, regardless of how hard the hobbyist is trying.
Do you know that I work with so many so-called 'engineers' who, if you gave them a box of parts to make a crystal radio and told them to do it, they wouldn't have any idea how to do that or how it really works? They'd have to Google it.
Yeah, I've met quite a few engineers that don't know how a crystal radio works without some guidance, but that was also completely irrelevant to them being amazing engineers for what they did work on. One was a walking encyclopaedia of linear filter topologies and amazing at designing distributed element filters, but never concerned himself much with semiconductors and nonlinear components, leaving those for the kids. People prioritize what they need to get their job and projects done, and yet you act like your arbitrary decision of what they need to know about differentiates the real Scotsmen from the fake ones.
This is the world I'm afraid these products is creating
And yet the world existed before these products did... which doesn't really help with implying a causal link there.
just leap-frog around and learn the bare minimum to do what your boss wants, and who cares about the rest
And yet, people who learn things on their own at great depth still get pinned as learning the minimum by people like you because they chose a slightly different subset of things to learn about than you would have. You complain about crappy EEs existing, but there are also mechanical and artistic types that may know who different fields at depth, and want to pick up some basic electronics for a project or two screw around. If these people only care about what their boss wants, they wouldn't be buying things like Arduinos at all in the first place.
People wonder why the U.S. is becoming a 'service economy' and why we don't build anything here anymore and this is why!
And this doesn't make sense at all... if we all knew electronics in super detail, why would anyone be paid to build electronics? Building stuff doesn't require in depth knowledge, designing and developing stuff does. Knowing how a crystal radio works doesn't help you better work on the production line in a plant. Learning about things in depth does however tend to make a person want to actually do things that use their knowledge and be paid for it though.
Many of you are still relatively young
And yet you display all of the mentality of a young person yourself, and like many younger people, can't see that. You blame "millennials" for human traits that are close to ageless (at least present in people when I was a kid ~50 years ago). That is the root of the issue I and probably others take of posts like this, that you blame problems on a certain group of people and think they are so different from yourself or others.
Hopefully you'll grow up enough before you die to realize the value in doing things instead of worry about whether what you do is "Doing the Work" or not, or worse, spending your time worrying if others doing things count as actually doing things.
I'll get the popcorn :)
Seriously though I just don't care anymore. If this is the future people want, let 'em have it. And besides: all that quick and dirty basic programming actually sounds like fun (yes I cut my teeth on basic in the 80s), and maybe it will give us some high paying jobs cleaning up the mess during/afterwards.
Whatever. It's less stressful to just stop worrying and enjoy the ride.
You can get a new generation Z80 chip from Zilog for under $5, or an 8051 for $1.25. You can have 80s computers on a breadboard now. Load up all your old ROMs!
People act like analog electronics are obsolete like the vacuum tube. The real world is analog.
Only the State obtains its revenue by coercion. - Murray Rothbard
It supports integration with thing speak. Some other cloud services will be supported here soon. It also has a function that can simply retrieve a url and place the retrieved information in to a variable. So there are multiple ways to make it interact with the cloud and personal servers using standard web technology.