-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Roadmap for next release (v1.11 -> v2.0?) #4821
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
stm32: USB HOST/OTG? |
I'm not sure about this, it's a nice feature to have but a fair bit of work to implement fully. |
esp32: hardware I2C and NVS ? |
Maybe strive for identical - or very similar - API's across the supported ports? Where are we at with compatibility? Ideally everything in I know this is controversial, but...this should include considering deprecating parts of It just seems that API stability would be a great goal of v2.0. |
Yes I agree, and work continues to be done in that direction, but it's a hard goal to hit. For ADC and PWM see #4213 and #4237 . It'd be good to get at least these done, and then Pin, ADC, PWM, SPI, I2C and UART would be relatively consistent.
Yes, that's the aim, to update the docs so pyboard uses machine for the most part. See eg e5e4721 which prefers |
Everytime we changed main.py and it need to RST and run , many uart tools such as putty will get error and need to restart . I hope we can improve this damn problem! |
Hit Ctrl-D after the red led turns off, rather than pressing the reset button on your pyboard. Also putty has a option in the menu to quickly restart the connection (use this rather than closing the window). |
Thank you so much! |
I would like to have DMA support for the ADC of the Pyboard. |
Nonblocking ADC and DAC methods would be great, especially on the Pyboard. I guess these would probably use DMA. If this were done it would be worth considering uasyncio compatibility. This won't suit the highest performance applications. However there are uses for StreamReader and StreamWriter objects targeted on ADC and DAC instances. For this to work buffering would be needed. This could be implemented via double buffers or ring buffers which can signal half full/half empty status to give uasyncio time to schedule the StreamX method. |
Add support for SPI RAM interface On PYB? |
The stm32 port already supports external SDRAM, and external QSPI flash as ROM. |
I learned about SDRAM extensions from #3940 , but STM32F405RGT6 does not have FMC, so I want to use SPI RAM to extend like ESP32. This is my discussion in the forum SPI FLASH 2 in PYBD_SF2 |
Is it worth improving some aspects of time handling?
Further:
Time is a big and complex domain but it is quite important on an embedded device. |
Re modframebuf.c I'd like to see a solution to #2973. Blitting between framebufs with arbitrary colour mapping wo 8000 uld be ideal. But if it is too heavyweight, a fix for the problem as originally outlined would have practical application and would be simple and cheap. A use case is to render in arbitrary colours objects stored as 1-bit maps (such as font glyphs). This is very slow in Python. |
esp32:support bluetooth? |
I'd really like mDNS support in the socket.getaddrinfo() for looking up ".local" domains. (This is just the "easy" half of mDNS spec.) Otherwise I've got to hard-code the ip-number when using mqtt to a local broker, which is not very robust as this number can change, which then requires taking down and reprogramming all my Micropython devices. I've been getting around it using this minimal UDP sending code, which just about works on an ESP32. If this were done properly it would seriously help out with connecting embedded devices onto local networks in the real world where people don't always have access to the router to force it to use fixed ip-numbers. |
@goatchurchprime I agree this is a useful feature! What do you mean by "just about works". Do you see any reason why this can't be implemented in Python and therefore needs to be part of the base firmware. i.e. can this be an optional module written in Python that users can add to their filesystem (or add as a frozen module) if they want it? (Perhaps ultimately add it to drivers, or micropython-lib) |
Note that in the stm32 port mDNS queries and the responder are enabled for boards that have network interfaces. For esp32 I think it's just a matter of enabling the feature. |
Moved the mDNS discussion out to #4912 |
Do you think the pulse counter (pcnt) support for esp32 could fit in the "esp32: support more of its features, like OTA, mesh, I2S" item ? Does it lives in the lowhanging fruit area ? |
Feel free to look into it. There's no problem to support more of the esp32 peripherals, it's just a matter of time to work on it. |
Support for nonblocking DNS lookup ( |
My colleague @ironss has created a fork over here for internal use that adds LittleFS for ESP32 https://github.com/ironss/micropython-littlefs I see LittleFS is on the roadmap but no mention of an ESP32 implementation. Can we get this mainlined? Edit: I have suggested that @ironss could rebase on to #3847 to ensure the approach and API is common between STM32 and ESP32. |
@nevercast Looks like nice work by @ironss... 👍 |
Ah yes, further down the page. I stopped reading too early, good spotting. |
Thank you for clarify! Anyway, I agree, the support for SSL/TLS on nonblocking sockets I would like to see in the next version :) |
esp32 supports quadrature encoder. |
Using which hardware? I don't believe there is a hardware driver for that. |
Using the pulse counter peripheral? |
Interesting usecase. It would still require a Python driver to decode the pulse counts in to a rotation and we should probably have a purely GPIO solution also. But yes, good point, we should have an ESP32 Pulse Counter driver. Edit: Perhaps that should be raised as a seperate issue. |
For reference: ESP-IDF Pulse Counter. Agree, this should be a separate ticket. Note that #5214 touches on the topic (and there are some helpful links to related topics in the forum) but it isn't specific to the ESP32 hardware. |
I think support for WPA2-ENTERPRISE is essential. Many school and university networks are using this for authentication. This would certainly boost the popularity of the system. |
@dpgeorge is there any chance to see soon something as |
v1.12 was tagged in 1f37194 There are a lot of good suggestions here, which will need to form part of the longer-term roadmap of features. |
please add mqtt async . |
Suggestion: use Kconfig for configuring MicroPython Would you like to configure MicroPython like this? Or this: See #5444 for details. |
IMHO getting uasyncio sorted out, stable, and documented should be a major feature for the next release. I know there's a lot in progress but it's such as core facility for a lot of users (I believe) that it should be on the roadmap explicitly. |
Is there a spectrum of benchmarks to stress the timing, capacity and memory footprint of the uasyncio library in place before it is rewritten/worked on? I don't see any here: https://github.com/micropython/micropython/tree/master/tests/perf_bench I must confess that I have never actually noticed a problem with this library in my use of it, so I don't know what people are complaining about. Maybe these benchmarks will show something up. For all I know the code might be really gnarly and be due for a rewrite, but you have to be sure that when you change it you don't accidentally lose performance that is already there. |
@goatchurchprime uasyncio V2.0 has bugs, some listed here; in particular task cancellation has a major failing. The new version has cleaner code and according to my measurements on early code was nearly as fast as V2.0. It has since been improved for better performance. I think you can be confident that, when released, it will offer a substantial improvement. |
Boy, you just blink and stuff gets already done! Please accept my apologies for not keeping up. When the test/benchmarks are released, I hope I can contribute one that exercises my use-case of scriptlets -- that of running code via the exec() or execfile() functions in cancellable tasks. Just in case the code parser is or is not async optimized. The code snippets are received through MQTT. There is no line between an API and an interpreted programming language, as many websites discovered when they got taken down by sql-inject attacks. |
I totally agree :) |
Are there any plans for better DAC support? This repo has routines for tone generation, even playing WAV files: https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo/wiki/dac |
Has the ADC changes from v1.10 been forgotten? #4213 / #4356 ? I would like to offer Edit: It would be good to have it in the checklist at the top. |
Also, since this is v2.0, can we break some stuff and see consistency on the use of Pin vs number? #4379 I'm in favour of make everything use Pin, make number forbidden. |
Done for us by the looks? https://forum.lvgl.io/t/example-for-working-with-a-rotary-encoder/1509/20 |
I guess "esp8266/esp32: switch to use LittleFS (saves 4k RAM, more robust filesystem)?" should be ticked ? isn't it ? |
ESP32: New features PCNT() and QUAD() #6639 |
Uh oh!
There was an error while loading. Please reload this page.
This issue is intended to give an overview, track progress and provide discussion for the roadmap of features and changes to get MicroPython to the next release.
And I'd propose that the next release be v2.0, because MicroPython is now quite mature (although definitely not finished), and also v2.0 of the software would roughly correspond to the release of pyboard v2. (See #2486 for existing discussion about v2.0.)
The following features/changes are in scope for the next release (note this list is not a guarantee, nor exhaustive):
boards/startup*.s
to stm32lib; see 6b6403cThe text was updated successfully, but these errors were encountered: