Doesn't look much easier than C , in fact I think for simple uses C is easier (the blink sketch for example). That said I recognize the power of Python , especially when handling data (which can be a nightmare in C/C++) but I don't think anyone would need to handle any complicated data on a microcontroller.
I call a high level of tom-foolery. No 'language' runs on a microcontroller except for binary. Last I checked: processors only used *ASM instruction sets represented by machine code and not an interpreter. The blinking-error fancy footwork is probably just the IDE flashing the LED with the error-logic defined within the software before 'converting' the un-interpreted erroneous code. ... Just my ungoogling skepticism, could be totally wrong but I have a feeling that I'm bang on. Only way to convince me otherwise is to pull the source code directly off the flash once it's been programmed.
You dont compile anything, you upload plain text files with .py extension to it by dragging and dropping the same way you would with a thumb drive and every time main.py is updated it is automatically executed
@@mikescholz6429 once you do this, and delete the files from your computer: is there any way to retrieve the .py or .pyc file from the trinket device? (If not, then that answers any question of how you program an MCU using Python... You don't 😯😜)
James S yes you can open the .py file directly from the board in a text editor, make changes and as soon as you click save it starts executing the new code. There are binary compiled libraries on the board as well that comprise the actual interpreter but your actual loop stays in plain text. Also if you get one of the boards with the M4 cortex that has like 4 times as much ram it can do some decently heavy lifting. The chip is linked to IIRC a 4mb flash memory chip that holds your code as well as bitmaps, wav files or whatever else you may need. I have a setup that plays bitmap files on addressable LED strips where each row of pixels is one frame of the length of the strip and sequentially writes each row going down the image.
@@mikescholz6429 So the MCU can't actually be programmed with Python, there's a subsystem on the chip, just like on your computer, that interprets the code and runs it on the processor. Perfect. :). Exactly as I thought. :D. Thanks for the clarification. Cool that it has removable storage!
I would like to see it measure voltage if possible such as switching a relay on at one voltage and off at another voltage. I was thinking of getting into raspberry pi but this may be a cheaper way for the basic use I would need it for. You make it look so easy to do so please more on these types of devices. Thanks
Arduinos and similar boards can easily measure voltages and make decisions based on that. I'm just learning CircuitPython myself, but in C, this would be something like if(analogRead(A0)>512{foo;}else{bar;}}
Thank you, Gary, sorry I can purchase one as I got one a year ago that is in my drawer but now watching your video I think I will get it out and have a go so any more videos would be good thanks, Bob, in the Uk
Thanks for the reference. I'd looked at that before and couldn't find what I was looking for. What I found this time was the API Reference documents. I wanted to know is what all the functions were available from a specific library module. I really enjoy your channel!
@@rodproctor5466 I think what you're asking for is a combination of inspecting in realtime docs.python.org/3/library/functions.html#dir and further reference for the functions themselves github.com/adafruit/circuitpython
Hi Gary its kind of irrelevant but still can u suggest me any unique project to work on using Arduino or rasp.pi just for learning something innovative plz help me
You are already on youtube so do a search for say LCD 'liquid crystal display ' see what comes up. "innovative" has no meaning here; everything you will see already exists. If you go to Arduino or Adafruit learn sections you will see very elaborate tutorials for there products. The last point to do this type of hobby being inquisitive is a must. In most cases when you ask a question of the host on youtube it should be about what they have presented otherwise as you can see He did not answer your request. When searching be as specific as you can.
Interesting but I better learn C than going through the pain of using such debugging capabilities. C is hard but not so much, it just needs a bit of discipline and a couple of good reference sources around you.
I'm sure you already realized this, but that orange power wire you put on the breadboard at 9:50 was totally pointless and not needed for that circuit or any other circuits you showed lol.
Excellent! But as with _all_ modern software development, it's not about the language, it's about the framework (libraries). C, C++, Rust, Python, Java, JavaScript, Ruby, Perl... yada yada-- the syntactic differences are minor and once you know one, you can figure out the rest. The real "learning" is to learn and understand the _library_ (import board, digitalio, etc.) , as seen in your example which would look 99% the same in any of these languages, but knowing JavaScript or C instead of Python is not going to help you know how the libary works and what it does.
You're mostly correct but I'll have to disagree slightly. What you said is true in most of high level software development but breaks down when getting closer to the actual hardware. It makes a metric ton of difference whether you know C or python when your writing firmware/ other microcontroller code. This is due to the fact that at sufficiently low levels, the language you're writing needs to conform to the actual hardware without any abstraction layers making your life easier. It's fine and dandy blinking some LEDs with circuit python (which is actually just a sort of perverted C wrapper) but when, for example, reading data from a I2C connected sensor you really need to understand actual silicon register sizes, pointers and all sort of low level stuff that simply isn't present in python.
Mega Newbie alert: how could i go about figuring out if this language and that board would be ideal to operate a nerf gun. i know i'll need to connect a microswitch for the trigger, a solenoid to be triggered by the microswitch, a 9v battery source and two step button to turn it on and off. maybe a capacitor might be needed supply consistent pot to the noid.
The performance is undoubtedly horrid when compared to C. You're saving a python script straight to some emulated usb mass storage. It then has to take that and compile it into bytecode if it wants any chance in hell of having any kind of performance at all. It needs to run an OS with all the overhead that comes with that, etc. The only things i can see this being useful for are things like IOT or somehow data processing (which an MCU would be bad for anyway). I don't see the point.
The point is easy access to newcommers, easier development for more complex applications and data processing. Of course the performance is 'horrible' compared to c, but let's be honest: A well programmed Arduino is more than powerful enough for almost all IoT projects, but the atmega is almost 20 years old. The ESP32 has a dual-core arm processor and tons of interfaces and hardware extentions, is cheaper than an arduino and still (running python) more powerfull than the atmega. Moore's law also applies to MCUs and it is high time for another abstraction layer. The arduino project was a milestone over 15 years ago, making MCUs accessible to makers, providing an easy to use IDE/compiler and acess via usb/uart (MCU development kits were proprietary and expensive until then). Micropython (or equivalent) even get rid of (cross-)compiling and makes testing, developing and deploying even easier. I highly recommend trying it yourself! Cheers!
It's a good idea, but bad execution. Make small series and start it simple. For 6 years old kid simple. Want to learn how to execute right? Take a kid and start teach him or her. Then make 3-5 minute lessons on youtube.
Nice video good to know about CircuitPython. Please make more videos based on this.
Doesn't look much easier than C , in fact I think for simple uses C is easier (the blink sketch for example). That said I recognize the power of Python , especially when handling data (which can be a nightmare in C/C++) but I don't think anyone would need to handle any complicated data on a microcontroller.
You can use both if you like.
An interpreted language on an embedded system. Nice!
I call a high level of tom-foolery.
No 'language' runs on a microcontroller except for binary. Last I checked: processors only used *ASM instruction sets represented by machine code and not an interpreter.
The blinking-error fancy footwork is probably just the IDE flashing the LED with the error-logic defined within the software before 'converting' the un-interpreted erroneous code.
... Just my ungoogling skepticism, could be totally wrong but I have a feeling that I'm bang on.
Only way to convince me otherwise is to pull the source code directly off the flash once it's been programmed.
You dont compile anything, you upload plain text files with .py extension to it by dragging and dropping the same way you would with a thumb drive and every time main.py is updated it is automatically executed
@@mikescholz6429 once you do this, and delete the files from your computer: is there any way to retrieve the .py or .pyc file from the trinket device?
(If not, then that answers any question of how you program an MCU using Python... You don't 😯😜)
James S yes you can open the .py file directly from the board in a text editor, make changes and as soon as you click save it starts executing the new code. There are binary compiled libraries on the board as well that comprise the actual interpreter but your actual loop stays in plain text. Also if you get one of the boards with the M4 cortex that has like 4 times as much ram it can do some decently heavy lifting. The chip is linked to IIRC a 4mb flash memory chip that holds your code as well as bitmaps, wav files or whatever else you may need. I have a setup that plays bitmap files on addressable LED strips where each row of pixels is one frame of the length of the strip and sequentially writes each row going down the image.
@@mikescholz6429
So the MCU can't actually be programmed with Python, there's a subsystem on the chip, just like on your computer, that interprets the code and runs it on the processor.
Perfect. :). Exactly as I thought. :D.
Thanks for the clarification. Cool that it has removable storage!
I would like to see it measure voltage if possible such as switching a relay on at one voltage and off at another voltage.
I was thinking of getting into raspberry pi but this may be a cheaper way for the basic use I would need it for.
You make it look so easy to do so please more on these types of devices. Thanks
Arduinos and similar boards can easily measure voltages and make decisions based on that. I'm just learning CircuitPython myself, but in C, this would be something like if(analogRead(A0)>512{foo;}else{bar;}}
Thank you, Gary, sorry I can purchase one as I got one a year ago that is in my drawer but now watching your video I think I will get it out and have a go so any more videos would be good thanks, Bob, in the Uk
Nicely done . .
I can'r see a link to purchase the board. Very informative introduction to working with it. I would like to see more in depth.
Sorry about that I forget to add them to the description. Fixed now.
If anyone else doesn't get theirs to blink, save as code.py instead of main.py or remove the code.py that's already in your CIRCUITPY directory.
That was cool!
Would you please describe how to see what is in the libraries that support the hardware functions.
This is probably a good starting place: circuitpython.org/libraries
Thanks for the reference. I'd looked at that before and couldn't find what I was looking for. What I found this time was the API Reference documents. I wanted to know is what all the functions were available from a specific library module. I really enjoy your channel!
@@rodproctor5466 I think what you're asking for is a combination of inspecting in realtime docs.python.org/3/library/functions.html#dir and further reference for the functions themselves github.com/adafruit/circuitpython
would themis work for the PyRuler also?
this*
What else can you build with this tiny chip and can it run off a 9 volt battery? I assume from its size it would be quite cheap.
It cannot run directly off of a 9 volt because the regulator can only handle up to 5v.
Could you make a comparison between CircuitPython one C when using with Arduino? Pros and cons of both? Cheers
*GARY!!!*
*Bonjour Professeur!*
*Bonjour Camarades De Classe!*
MARK!!! Bonjour!!!
Sir
this video was helpful, but kind of annoying that we didnt see boot time from power to running, i wanted to see how small that was
Can I know the differences between Micropython vs Circuitpython?
Circuitpython is a derivative of micropython developed and maintained by Adafruit. It makes the language simpler and education friendly.
@@vinaybharadwaj802 Thank you, And what about libraries? Aren't they are same
@@Saketh-Chandra CircuitPython has a larger collection of libraries designed for it's hardware API that do not work directly with MicroPython.
The Basic Stamp was doing this 30 years ago. With BASIC though not python.
Hi Gary its kind of irrelevant but still can u suggest me any unique project to work on using Arduino or rasp.pi just for learning something innovative plz help me
You are already on youtube so do a search for say LCD 'liquid crystal display ' see what comes up. "innovative" has no meaning here; everything you will see already exists. If you go to Arduino or Adafruit learn sections you will see very elaborate tutorials for there products. The last point to do this type of hobby being inquisitive is a must. In most cases when you ask a question of the host on youtube it should be about what they have presented otherwise as you can see He did not answer your request. When searching be as specific as you can.
Servo controller!
Thank you. Could you please show me the link to purchase it.
The link in the description.
I’ve never been this early before
Where can I download the IDE to code the trinket please??
codewith.mu
Like before watch...
*So say we all!*
I love circuit Python but this board has no space at all which is frustrating cause I wanted to use the libraries CP can use for audio stuff
Yup! M4 and nRF52840 boards will store and run more CircuitPython code than an M0 will (and run faster too!)
how can i connect to ultra sonic sensor
What about Micropython?
Interesting but I better learn C than going through the pain of using such debugging capabilities. C is hard but not so much, it just needs a bit of discipline and a couple of good reference sources around you.
The big problem as I see it is that it costs $9 and you only get 5 GPIO pins. There's much better value to be had out there, surely.
What we're going to do is we're going to
Great for the kids who don't like C/C++.
I'm sure you already realized this, but that orange power wire you put on the breadboard at 9:50 was totally pointless and not needed for that circuit or any other circuits you showed lol.
really? how would the LED be powered, then, without a positive rail?
Excellent! But as with _all_ modern software development, it's not about the language, it's about the framework (libraries). C, C++, Rust, Python, Java, JavaScript, Ruby, Perl... yada yada-- the syntactic differences are minor and once you know one, you can figure out the rest. The real "learning" is to learn and understand the _library_ (import board, digitalio, etc.) , as seen in your example which would look 99% the same in any of these languages, but knowing JavaScript or C instead of Python is not going to help you know how the libary works and what it does.
You're mostly correct but I'll have to disagree slightly. What you said is true in most of high level software development but breaks down when getting closer to the actual hardware. It makes a metric ton of difference whether you know C or python when your writing firmware/ other microcontroller code. This is due to the fact that at sufficiently low levels, the language you're writing needs to conform to the actual hardware without any abstraction layers making your life easier. It's fine and dandy blinking some LEDs with circuit python (which is actually just a sort of perverted C wrapper) but when, for example, reading data from a I2C connected sensor you really need to understand actual silicon register sizes, pointers and all sort of low level stuff that simply isn't present in python.
TR7H Fair.
Mega Newbie alert: how could i go about figuring out if this language and that board would be ideal to operate a nerf gun. i know i'll need to connect a microswitch for the trigger, a solenoid to be triggered by the microswitch, a 9v battery source and two step button to turn it on and off. maybe a capacitor might be needed supply consistent pot to the noid.
جوووون
6:06 ..... that is the worst sharpener you could have used on a pencil!!!
The performance is undoubtedly horrid when compared to C.
You're saving a python script straight to some emulated usb mass storage. It then has to take that and compile it into bytecode if it wants any chance in hell of having any kind of performance at all. It needs to run an OS with all the overhead that comes with that, etc.
The only things i can see this being useful for are things like IOT or somehow data processing (which an MCU would be bad for anyway). I don't see the point.
The point is easy access to newcommers, easier development for more complex applications and data processing. Of course the performance is 'horrible' compared to c, but let's be honest: A well programmed Arduino is more than powerful enough for almost all IoT projects, but the atmega is almost 20 years old. The ESP32 has a dual-core arm processor and tons of interfaces and hardware extentions, is cheaper than an arduino and still (running python) more powerfull than the atmega. Moore's law also applies to MCUs and it is high time for another abstraction layer.
The arduino project was a milestone over 15 years ago, making MCUs accessible to makers, providing an easy to use IDE/compiler and acess via usb/uart (MCU development kits were proprietary and expensive until then). Micropython (or equivalent) even get rid of (cross-)compiling and makes testing, developing and deploying even easier. I highly recommend trying it yourself!
Cheers!
What a crappy way to inform the user there has been an error in the code
The flashes are for the case where you don't have a computer handy. If a screen is attached it will show the error just like the serial output.
please stop poking your circuits with a graphite pencil... 🔥
Very true, graphite is conductive, and may short the wrong pins and BOOM! great video though
It's a good idea, but bad execution. Make small series and start it simple. For 6 years old kid simple. Want to learn how to execute right? Take a kid and start teach him or her. Then make 3-5 minute lessons on youtube.
In your ever so humble opinion.
This Python crap is so hateable, dysfunctional, and unsuited to any serious endeavors. Not to mention I find C easier.
I'd love to see it control sound. Nothing monumental just a PC Speaker single square wave would be quite impressive imho
increase the frequency of the on and off example and send it through a speaker, there you go
Great for the kids who don't like C/C++.