Some power MOSFETs do require higher than 3.3V, but that can be accomplished with a pullup, something the P1 can not do.
Yes, better than P1, but still a kludge, as you cannot get fast PWM rise times from a resistor pullup, and you have bumped the BOM significantly, as well as compromised the static Icc specs.
Many parts that claim 5V tolerant, are actually NOT tolerant of 5V when un-powered.
- and as mentioned ADC/DAC stop at 3.3V.
It just all adds up to a lot of explaining to do with novices, all when using a 5V device is just simpler to do.
One with VccIO can even interface to any voltage subsystem.
I dug through the Nuvoton NUC123 specs, which would be a similar part. Yes the analog goes 0-5V, but it looks to me like the digital IOs don't. I could be mistaken (ah that never happens ) , but there does not seem to be a Voh spec, but they do spec source currents with Vs of 2.4V.
But really the choice of parts is really immaterial, there are lots of alternatives, and the questions involve more of what features would make a successful follow on to the BASIC Stamp.
In my own mind, cost is a real issue, as educators are buying pencils for their students, so obviously they don't have a lot of money kicking around.
I dug through the Nuvoton NUC123 specs, which would be a similar part. Yes the analog goes 0-5V, but it looks to me like the digital IOs don't. I could be mistaken (ah that never happens ) , but there does not seem to be a Voh spec, but they do spec source currents with Vs of 2.4V.
Yes, they have a strange spec as they have a Quasi-bidirectional mode copied from the 80C51, and that gives them specs at mid-drive.
The Push-Pull specs do give high currents at that point of -24mA, so they are a PFET to Vcc.
But really the choice of parts is really immaterial, there are lots of alternatives, and the questions involve more of what features would make a successful follow on to the BASIC Stamp.
Agreed - & one of those features for 'a successful follow on to the BASIC Stamp' is 5V operation
In my own mind, cost is a real issue, as educators are buying pencils for their students, so obviously they don't have a lot of money kicking around.
The NUC123 is a smaller sibling to the M4, it is (supposedly) cheaper, and has smaller package choices, but it also is M0 core and lacks FP.
Checking the price finds not much in it....
NUC123ZD4AN0 QFN33 68 KB 20 KB 490 $2.5097
vs the
M453RE6AE LQFP64 128KB 32 KB CAN 10000 stock 250 $2.46
There are also 5V operating M4's from Spansion (FM4), but they are maybe $1 more, but have more MHz and more Flash.
The M453 specs an impressive loader choice :
* 16 KB embedded ROM
* Supports Nuvoton native In-System-Programming (ISP) for UART0, SPI0, I2C0, CAN and USB
To me, the M453 looks good value, but it's probably easy to trail FM4 parts too.
No this is not an open source compiler. While not invulnerable there is a firmware code that includes subroutines (like printf, divide ...) and a bootloader that can be read protected.
Is the compiler going to remain closed source or do you intend to make it open source eventually? What about the runtime?
No plans to go open source, not sure why I would want to do that, it would be a lot of work to clean it up to make it presentable. We have been crawling around the code for a long time so we are pretty familiar with it, and at present there are no known bugs.
Because it's well into the 21st century and that is what we do. If you want to attract developers and users, especially for educational purposes, open source platforms are expected. See the phenomenal success or the Adruino, Raspberry Pi, Espruino and others.
Because we have just spent five years and more getting Parallax on board with the Open Source idea.
Because closed source is just another closed road with a dead end.
Because, well, why not? Who cares about "presentable"?
Because you might find collaborators popping up to contribute to clean ups and optimizations or new features.
What's to lose? Much to gain.
I'm somewhat surprised to see Parallax wanting to use an ARM for a STAMP remake rather than a Propeller. But, hey , I have no idea about STAMP users, applications or that market.
I'm somewhat surprised to see Parallax wanting to use an ARM for a STAMP remake rather than a Propeller. But, hey , I have no idea about STAMP users, applications or that market.
At first glance the Prop is the natural next step, however the hard 3v3 limit on that is pretty much a 'drop dead' problem in the STAMP upgrade sector.
That same issue (plus sheer package size) will also remove P2 from the list, so Parallax do need to look around for something to bring STAMP into this millennia.
I have seen P1 PCBs with level shifters added, a bit of a kludge, but they also have failed to hit critical mass.
I do like the form factor of the Pico, at least the 0.1"/Edge-SMD dual choice. That's becoming common.
The USB tongue I'm in two minds about - it bumps the PCB to 2.0mm, and it impacts the compatible-outline, but it is cheap.
Micro USB connectors are more 'expected', and do not need to impact the compatible-outline.
What is the obsession with 5v? When nothing runs at 5v anymore?
Err,.... the BASIC Stamp it hopes to replace for one, does.
If 'nothing runs at 5V' why do these companies bother doing 5V ARMs ? (that can also run on 3,3V, if the user wants)
This is what Freescale (NXP) says on the topic of 5V:
"The 5V Kinetis E series MCUs, based on the ARM Cortex-M0+ core, are designed to maintain high robustness for complex electrical noise environments and high-reliability applications."
Yup, you quickly find a lot of Automotive and industrial stuff likes 5V. ( also USB is 5V, Phone chargers are 5V...)
Ever tried driving a High Power MOSFET with a feeble 3.3V ?
I guess I am somewhere in the middle on 5V. Last place I consulted 5V tolerance was designed into almost all microcontroller parts, it just makes interfacing easier. The big push there and other places these days is for battery operation which means voltages 3.3 (Li battery) and below, often down to 1.8V. And even then the IOs were 5V tolerant.
For most things where 5V logic CMOS was involved, if it was a couple lines, a pullup was good enough, but for buses, a bus driver/level translator was used. Lots of those to chose from these days, as often there are a number of different power rails around even in small handheld devices.
Yes I know a MOSFET wants more drive, but these days I use gate drivers for big and or fast MOSFETs, and those almost all handle 3.3V.
As for what I perceive the DIY and educational market place to be, there is a lot of 5V stuff out there, and I think 5V tolerance would be on that requirement list.
On the analog side 10V ADC/DACs are still prevalent in industrial control, and pretty much everyone just does that with external parts.
@Heater: I tried to use that Basic, but couldn't get it to save programs. Have you had any luck with it? I ended up switching over to Lua with NodeMCU. Maybe I should give it another try. But I want to spend some time trying out Piper Minecraft with my daughter first. (Anyone with a Pi and some spare parts can download an SD image and try it out.)
One thing that I don't understand is what would be wanted in an update of the BasicStamp. Is this being considered due to to parts being EOLed, or to update the environment? Do you keep complete backwards compatibility, but then add optional extensions for advanced users? e.g. Offer a PWM alternative to PULSOUT for servo control. If you don't keep backwards compatibility and thus the ability to make use of all of the educational materials that have been developed, then do educators really want yet another flavor of a tethered Basic?
I think that the Micromite flavor of Basic is interesting. And it has the ability to accept custom code like the Basics I used growing up. So you can basically poke in machine code. There was some interest around it here on the forums. But there are so many shiny things to distract one these days. I replaced those chips with ESP8266s.
Create a C precompiler that hides a event machine in main.c and set up timers for functions to use for their delays
no while(wait for pin) or cycle_delay(>100) allowed.
And all event functions need to use a state machine, the precompiler will change the state allies names to case : xx
There are pre-defined state flags like, state.init and state.restart
As switch-case allows break anywhere or fall through to next case, any person can write code for it even if it's in C it looks very Basic like.
I have created system just like that on a msp430G2553 (no precompiler that hides the manual setup though)
Allows me to have 16 task that all multi-task nicely.
IRQ are mostly used to set flags for the main.c eventmachine, or very short routines so other IRQ's can trigger fast too.
There is no hardwait while() or __cycle_delay(), so when there it's nothing to do, the mcu and dco shuts down automatically,
and system is consuming 1uA while waiting for a timer or gpio event.
Is this being considered due to to parts being EOLed, or to update the environment?
With 26 Bytes and 500 Instructions, that gives less user resource than a 31c Microcontroller, which is orders of magnitude faster.
An update is clearly needed.
Even just 32bit VARs, (lots more) and (lots) more code, plus the significant boost in speed.
Do you keep complete backwards compatibility, but then add optional extensions for advanced users? e.g. Offer a PWM alternative to PULSOUT for servo control. If you don't keep backwards compatibility and thus the ability to make use of all of the educational materials that have been developed, then do educators really want yet another flavor of a tethered Basic?
Yes, Backwards Compatibility is clearly high on the list for any replacement, for all the reasons you list, and more..
That's one reason 5V ARM is mentioned.
I think that the Micromite flavor of Basic is interesting. And it has the ability to accept custom code like the Basics I used growing up. So you can basically poke in machine code. There was some interest around it here on the forums.
It really should not be hard to create a backward compatible language, and give users the choice of interpreter, or compiler.
Even a Spin-Bytecode handler would fit in the code space as well, in the smallest candidates.
But there are so many shiny things to distract one these days. I replaced those chips with ESP8266s.
Yes, RF links would be high on a list, but best managed as an option. There is still quite an impact on size and price from adding Wireless (Wifi, bluetooth et al)
Some of these systems already have a form of Basic - see heater's link above and BlueGiga have optional BGScript :
Don't forget to look at the Microchip dsPIC30F which runs at 5 volts. They have up to 8K of RAM and 144K of program memory. But you gets lots of I/O and peripherals.
Only problem is that they are rather pricey at about $10 in singles.
On the bright side they are available in DIP and TQFP packages.
I got your module in the mail today. I'm going to download your IDE and try it later. Thanks!
I installed the CBasic folder on my Win10 laptop and tried running ParallaxIDE but I couldn't get it to talk to the stamp module. It sees the serial port but it doesn't seem to communicate.
Win10 is a moving target right now. I have not turned off auto-update, not sure you can. But over the past 3 weeks, I have seen all connections to network printers disappear and reappear. One old program I had did not work correctly, now seems to be, but crashes in certain operations. The same holds true for serial. TeraTerm seems to have no issues talking to the ARMstamp, but my Tcl based program I use for testing was working fine now is not. And I have seen issues with the Qt based terminal program based on propterm.
Some of the issues Parallax may have run into, but so far haven't had any info sharing from Parallax. We based our code on version 0.30.1 of Parallax IDE. One thing we saw was that both Win8 and Win10 take a long time to release a USB serial port on close. This is an issue for the load/execute cycle on propterm and propload of that version. We got around it by keeping the serial port open and merging those 2 programs.
But you should at least see COM3 seems to be the typical serial port assigned to the LPC USB serial driver. If you hit STOP you should see Welcome message
So for now, I'll patiently wait for the next auto-updates of WIn10
I think "upgrading" from Win7 to Win10 was a big mistake. Unfortunately, I can't really undo it now. I can't get Tera Term or PropTerm to work. As you say, I'll have to wait for an update.
Yeah Win10 is an improvement over 8, not so sure on 7. To see if we are on the same page, start up TeraTerm, open COM3 (baud rate is ignored), and type in ctl-C, which is the reset to this version of the board. See if you get the welcome message.
If you have been working on Qt Parallax IDE on the Mac, I'd be willing to work on getting that up. What version of gcc were you using for the Propeller?
Yeah Win10 is an improvement over 8, not so sure on 7. To see if we are on the same page, start up TeraTerm, open COM3 (baud rate is ignored), and type in ctl-C, which is the reset to this version of the board. See if you get the welcome message.
If you have been working on Qt Parallax IDE on the Mac, I'd be willing to work on getting that up. What version of gcc were you using for the Propeller?
I've played with Qt a bit on the Mac. I've built SimpleIDE on occasion as well as some other stuff. Also, my current WiFi loader for the Digi Xbee module is written using Qt.
I guess we can't get very far without that, I will check with my NXP contacts.
I don't want to muck with Parallax github, so I won't post the code there, I guess I could setup a parallel one, though I really haven't been tracking code changes and my stuff was based on version 0.30.0.
Comments
Many parts that claim 5V tolerant, are actually NOT tolerant of 5V when un-powered.
- and as mentioned ADC/DAC stop at 3.3V.
It just all adds up to a lot of explaining to do with novices, all when using a 5V device is just simpler to do.
One with VccIO can even interface to any voltage subsystem.
Already suggested a Cortex M4 MCU, but smarter for this application is one that is 5V operating, not merely 5V tolerant.
But really the choice of parts is really immaterial, there are lots of alternatives, and the questions involve more of what features would make a successful follow on to the BASIC Stamp.
In my own mind, cost is a real issue, as educators are buying pencils for their students, so obviously they don't have a lot of money kicking around.
The Push-Pull specs do give high currents at that point of -24mA, so they are a PFET to Vcc.
Agreed - & one of those features for 'a successful follow on to the BASIC Stamp' is 5V operation
The NUC123 is a smaller sibling to the M4, it is (supposedly) cheaper, and has smaller package choices, but it also is M0 core and lacks FP.
Checking the price finds not much in it....
NUC123ZD4AN0 QFN33 68 KB 20 KB 490 $2.5097
vs the
M453RE6AE LQFP64 128KB 32 KB CAN 10000 stock 250 $2.46
There are also 5V operating M4's from Spansion (FM4), but they are maybe $1 more, but have more MHz and more Flash.
The M453 specs an impressive loader choice :
* 16 KB embedded ROM
* Supports Nuvoton native In-System-Programming (ISP) for UART0, SPI0, I2C0, CAN and USB
To me, the M453 looks good value, but it's probably easy to trail FM4 parts too.
Because it's well into the 21st century and that is what we do. If you want to attract developers and users, especially for educational purposes, open source platforms are expected. See the phenomenal success or the Adruino, Raspberry Pi, Espruino and others.
Because we have just spent five years and more getting Parallax on board with the Open Source idea.
Because closed source is just another closed road with a dead end.
Because, well, why not? Who cares about "presentable"?
Because you might find collaborators popping up to contribute to clean ups and optimizations or new features.
What's to lose? Much to gain.
I'm somewhat surprised to see Parallax wanting to use an ARM for a STAMP remake rather than a Propeller. But, hey , I have no idea about STAMP users, applications or that market.
That same issue (plus sheer package size) will also remove P2 from the list, so Parallax do need to look around for something to bring STAMP into this millennia.
I have seen P1 PCBs with level shifters added, a bit of a kludge, but they also have failed to hit critical mass.
I do like the form factor of the Pico, at least the 0.1"/Edge-SMD dual choice. That's becoming common.
The USB tongue I'm in two minds about - it bumps the PCB to 2.0mm, and it impacts the compatible-outline, but it is cheap.
Micro USB connectors are more 'expected', and do not need to impact the compatible-outline.
If 'nothing runs at 5V' why do these companies bother doing 5V ARMs ? (that can also run on 3,3V, if the user wants)
This is what Freescale (NXP) says on the topic of 5V:
"The 5V Kinetis E series MCUs, based on the ARM Cortex-M0+ core, are designed to maintain high robustness for complex electrical noise environments and high-reliability applications."
Yup, you quickly find a lot of Automotive and industrial stuff likes 5V. ( also USB is 5V, Phone chargers are 5V...)
Ever tried driving a High Power MOSFET with a feeble 3.3V ?
You are talking to a guy who started out with 300v tube circuits and was later running TTL off a 12v motorcycle battery. For a while
I kind of miss the 4000 series CMOS logic days. Low power, wide supply range.
Where did it all go wrong ?
For most things where 5V logic CMOS was involved, if it was a couple lines, a pullup was good enough, but for buses, a bus driver/level translator was used. Lots of those to chose from these days, as often there are a number of different power rails around even in small handheld devices.
Yes I know a MOSFET wants more drive, but these days I use gate drivers for big and or fast MOSFETs, and those almost all handle 3.3V.
As for what I perceive the DIY and educational market place to be, there is a lot of 5V stuff out there, and I think 5V tolerance would be on that requirement list.
On the analog side 10V ADC/DACs are still prevalent in industrial control, and pretty much everyone just does that with external parts.
One thing that I don't understand is what would be wanted in an update of the BasicStamp. Is this being considered due to to parts being EOLed, or to update the environment? Do you keep complete backwards compatibility, but then add optional extensions for advanced users? e.g. Offer a PWM alternative to PULSOUT for servo control. If you don't keep backwards compatibility and thus the ability to make use of all of the educational materials that have been developed, then do educators really want yet another flavor of a tethered Basic?
I think that the Micromite flavor of Basic is interesting. And it has the ability to accept custom code like the Basics I used growing up. So you can basically poke in machine code. There was some interest around it here on the forums. But there are so many shiny things to distract one these days. I replaced those chips with ESP8266s.
http://www.mouser.com/Semiconductors/Embedded-Processors-Controllers/Microcontrollers-MCU/ARM-Microcontrollers-MCU/_/N-a85pcZscv7?P=1yzu0h8Z1yzvtb9Z1yy9vtfZ1yzrjtmZ1z0wti1Z1z0w7e7&Ns=Pricing|0
Create a C precompiler that hides a event machine in main.c and set up timers for functions to use for their delays
no while(wait for pin) or cycle_delay(>100) allowed.
And all event functions need to use a state machine, the precompiler will change the state allies names to case : xx
There are pre-defined state flags like, state.init and state.restart
As switch-case allows break anywhere or fall through to next case, any person can write code for it even if it's in C it looks very Basic like.
I have created system just like that on a msp430G2553 (no precompiler that hides the manual setup though)
Allows me to have 16 task that all multi-task nicely.
IRQ are mostly used to set flags for the main.c eventmachine, or very short routines so other IRQ's can trigger fast too.
There is no hardwait while() or __cycle_delay(), so when there it's nothing to do, the mcu and dco shuts down automatically,
and system is consuming 1uA while waiting for a timer or gpio event.
First, we glance at a Stamp spec
* ~4,000 PBASIC instructions/sec
* RAM Size: 32 Bytes (6 I/O, 26 Variable)
* ~500 PBASIC instructions (2 KBytes)
* PBASIC Commands: 42
Now, apply the questions
With 26 Bytes and 500 Instructions, that gives less user resource than a 31c Microcontroller, which is orders of magnitude faster.
An update is clearly needed.
Even just 32bit VARs, (lots more) and (lots) more code, plus the significant boost in speed.
ADC (and possibly DAC) will come for free.
Yes, Backwards Compatibility is clearly high on the list for any replacement, for all the reasons you list, and more..
That's one reason 5V ARM is mentioned.
It really should not be hard to create a backward compatible language, and give users the choice of interpreter, or compiler.
Even a Spin-Bytecode handler would fit in the code space as well, in the smallest candidates.
Then there is Debug ....
Yes, RF links would be high on a list, but best managed as an option. There is still quite an impact on size and price from adding Wireless (Wifi, bluetooth et al)
Some of these systems already have a form of Basic - see heater's link above and BlueGiga have optional BGScript :
https://bluegiga.zendesk.com/entries/22412436--REFERENCE-What-is-the-difference-between-BGScript-BGAPI-and-BGLib-
Atmel approach modules with a separate CPU and RF block, which is probably the best path for an optional add-on.
Good point, I keep forgetting about Cypress.
Their PSoC4 is 1.8~5.5V and has just added BLE, and they keep 1.9~5.5V Spec- sampling 256K now.
http://www.cypress.com/products/psoc-4-ble-bluetooth-smart
I find CY8C4127LQI-BL473 for $2.331/1k at 128kF 16kR 48MHz M0 Core.
If I had some ESP8266 on hand I'd probably be tinkering in Lua or Javascript on them.
Only problem is that they are rather pricey at about $10 in singles.
On the bright side they are available in DIP and TQFP packages.
Some of the issues Parallax may have run into, but so far haven't had any info sharing from Parallax. We based our code on version 0.30.1 of Parallax IDE. One thing we saw was that both Win8 and Win10 take a long time to release a USB serial port on close. This is an issue for the load/execute cycle on propterm and propload of that version. We got around it by keeping the serial port open and merging those 2 programs.
But you should at least see COM3 seems to be the typical serial port assigned to the LPC USB serial driver. If you hit STOP you should see Welcome message
So for now, I'll patiently wait for the next auto-updates of WIn10
If you have been working on Qt Parallax IDE on the Mac, I'd be willing to work on getting that up. What version of gcc were you using for the Propeller?
I'm currently using PropGCC build from my propeller-gcc repository: https://github.com/dbetz/propeller-gcc
I believe this uses Eric's latest version of GCC and binutils.
I don't want to muck with Parallax github, so I won't post the code there, I guess I could setup a parallel one, though I really haven't been tracking code changes and my stuff was based on version 0.30.0.