Circuitpython for M5Stack devices is here!!

  • I made the Circuitpython porting for several M5Stack devices:
    Go to the Circuitpython download page and burn the firmaware directly from your browser


    I have made all ports excepts the M5Stamp C3. More are coming!!

  • Nice work, thanks.

  • Hi i know this topić is old but can you add Atoms3 the News with LCD?
    Or Share how to do something like that?

    Also how to use that IPS with circuitpython? Dont think thre is library for

  • @mumin50 unless there is a circuitpython port than I can’t do anything

  • @ajb2k3 What you mean by circuitpython port? m5stack need to do something... ?
    I was thinking ESP32-S3 is already ported to circuitpython
    I was thinking that atom s3 used same chip as atom s3 lite... and all is in pin mapping
    I seen that ESP32-S3-DevKitC-1-N8 uses same chip ESP32-S3FN8 is already on circuitpython page...
    I was thinking if You can only create like general template just for this ESP32-S3 chip without any pin maping (all pin avaliable)
    Sorry i'm green on how it is done, just trying to utilise that nice board in my devs

  • Not quite, the hardware and peripheral setup is different between S3 controllers and so parts need to configured for the individual controllers but if you used Circuitpython you loose access to UIFlow

  • @ajb2k3 I just installed Atom s3 lite circuitpython on Atom s3 and it seams it works :)
    Also mentiooned ESP32-S3-DevKitC-1-N8 works ... Only issue is pin maping.

    "but if you used Circuitpython you loose access to UIFlow" - I really don't care about uiflow is to complicated and time consuming to learn it just to use it on just one bord type on one project. I like to chose board to project and not project to board. And because of that Uiflow will never "Fly" it is created only for one bord manufacturer in oposition to circuitpython where Adafruit understands that only by adding other manufacturers circuitpython will have sense. If they would not do this way all people would only use micropython...
    If M5Stack can't provide proper enviroment i just go to other manufacturer that provides me what i need, is just so easy.

  • Because Micropython is the proper language, Circuitpython is the adafruit port of Micropython

  • To concur with @ajb2k3, I consider CircuitPython to be a higher level of abstraction fork of MicroPython. Arguably, CircuitPython sits somewhere between Blocky and MicroPython in its level of abstraction, perhaps on a slightly different fork path.

    NB M5Stack already supports Arduino as a second proper language.

    In regards to your second and last comments about UIFlow and M5Stack, @mumin50. I don't think they're in the spirit of this forum. If I was able to, I would have downvoted your post.

    In terms of benchmarking M5Stack's approach, micro:bit (backed by Microsoft and more) have taken a similar route.
    UIFlow/UIFlow2 is not far away. Arguably, CircuitPython is the outlier.

    If you would like M5Stack to assist you more on your quest to use CircuitPython on their devices, perhaps make a polite request. And why not start a new positive subcategory for CircuitPython under I'm sure @Dario would be up for helping out too.

    No need to reply.

  • Sorry if you think that my tone is not polite.
    English is not my main langiuage and sometime it is hard to express my fellings with them. I just got the fell that i would like to learn uiflow when there would be able to use it for other boards and now i just fell that there is no basic support for good hardware from m5stack.
    My question is also how many people want to invest time to learn UiFlow if this skill is not usable for other manufacturers.
    I think sales of modules is as high as how mant user are using those. So if i think corect i would add support for all easy avaliable programming languages. Is similar issue like for orange pi, great hardware but only smal group of people uses as software support is not folowing hardware.

    Sorry for mumbling... By the way i just created my own compile build for circuitpython and managed to compile firmware myself so if i have some time perhaps i can try to create template myself, but it is painful endever...:P

  • UIFlow is built on Micropython but you don’t have to use UIFlow if you use an IDE like thonny you get direct access to Micropython. The issue is that adafruit change the way the core of Circuitpython works which results in many modules and libraries not cross compatible and when you are a beginner not knowing the difference is a big problem.
    From a beginner’s stand point you make up quick programs in UIFlow and then switch to ide mode and view the code.

  • @mumin50 congratulations, I have failed many times to compile firmware source and gave up

  • Update
    I managed to change pin map to work with Atoms3 and build new firmware. Was really easy to just remove Neopixel and add pins for LCD. Is easier than i was thinking it is...

    import board
    ['class', 'name', 'A1', 'A2', 'A4', 'A5', 'A6', 'A7', 'BTN', 'D1', 'D15', 'D16', 'D17', 'D2', 'D21', 'D33', 'D34', 'D38', 'D39', 'D5', 'D6', 'D7', 'D8', 'I2C', 'IR_LED', 'PORTA_I2C', 'PORTA_SCL', 'PORTA_SDA', 'board_id'*

    Got WiFi and REPL working.
    Now need to test all pins for function and all periferials.