10000 pumbaa: Pumbaa - MicroPython on Simba. by eerimoq · Pull Request #2501 · micropython/micropython · GitHub
[go: up one dir, main page]

Skip to content

pumbaa: Pumbaa - MicroPython on Simba. #2501

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

Closed
wants to merge 1 commit into from
Closed

pumbaa: Pumbaa - MicroPython on Simba. #2501

wants to merge 1 commit into from

Conversation

eerimoq
Copy link
Contributor
@eerimoq eerimoq commented Oct 10, 2016

Pumbaa is MicroPython on top of the Simba Embedded Programming
Platform.

Pumbaa was developed in a separate repository (see link below) and is not strictly following the MicroPython coding conventions and probably breaking a bunch of other directives that I don't know about.

Boards:

  • Arduino Due
  • ESP12-E
  • Particle IO Photon

Machine module not yet implemented.

Simba project: https://github.com/eerimoq/simba
Pumbaa project: https://github.com/eerimoq/pumbaa
Pumbaa documentation: http://pumbaa.readthedocs.io/en/latest/

How to build and run the tests:

cd pumbaa
source setup.sh
make -s -j8 test

Pumbaa is MicroPython on top of the Simba Embedded Programming
Platform.

Boards:

- Arduino Due
- ESP12-E
- Particle IO Photon

Machine module not yet implemented.

Simba project: https://github.com/eerimoq/simba
@dpgeorge
Copy link
Member

Wow, looks like an interesting project. But I doubt we can merge this as-is, for a few reasons:

  1. What's the benefit of using the Simba port of uPy running on an ESP8266 board, rather than directly running the ESP8266 port of uPy? Having 2 ports to ESP is going to confuse users and split the community.

  2. What are your long term plans for the Simba project? Is Pumbaa the main aim of Simba or is Pumbaa just a side project?

  3. How does Simba compare with other embedded OS's, eg mbed OS, Zephyr, Apache Mynewt?

@eerimoq
Copy link
Contributor Author
eerimoq commented Oct 11, 2016

@dpgeorge Thanks for the comments!

Some background of Simba:

A few years ago I was introduced to Arduino by a collegue. He implemented an object oriented platform called Cosa. He was very inspiring and I needed a side project, so I started Simba. I Implemented a scheduler, timers, synchronization primitives and a UART for small AVR Arduino boards and simulation on Linux. Continued with device drivers, file systems, networking and added support for additional boards. I published it it Github, added support to build Simba in both the Arduino IDE and PlatformIO.

The main goal is to implement a free open source well documented Embedded Programming Platform in C that people find useful.

Here are my answers:

  1. I added the ESP8266 port because it only took a few hours after getting MicroPython to work on the Arduino Due. I cannot give a list of benefits of running either of the two implementations, but I do agree that one port is preferred. One feature Pumbaa has that uPy currently lacks is polling of sockets (only input as of today).

  2. The long term plans are to make Simba the best programming platform out there. There are plenty of them and they increase in number, so it's a challenging task. =) I found MicroPython recently and was impressed by the features, and since it was implemented in C is was easy to put it on top of Simba. The experiment turned out alright and I called in Pumbaa. Both projects are serious projects and I intend to continue their development.

  3. There are so many embedded OS's actively developed and I'll not try to compare. My aim is to keep Simba independent and free of charge for everyone, even companies.

@dpgeorge
Copy link
Member

@eerimoq I suspect your answer will be no, but how about contributing directly to uPy code instead of developing Simba? Then we can all help to make uPy the "best programming platform out there" :) But seriously, there are many cool things that you could work on, like adding socket polling to esp8266 (see #2411 for a start) or multithreading support in stmhal (that needs all the low-level threading primitives implemented in C). Or you could help with the port to SAMD21 MCUs.

If you don't mind me saying, IMHO you could have more impact (more real-world users using your code) contributing directly to this project. Please think about it!

@eerimoq
Copy link
Contributor Author
eerimoq commented Oct 11, 2016

@dpgeorge
Simba and uPy are vastly different; Simba is a C implementation of an embedded OS for systems with very limited amount of resources, while uPy/Pumbaa is for slightly less constraint systems where a low time to market is important. If anything I will ditch the Pumbaa implementation and contribute to uPy, but I would "never" stop developing Simba.

One possible future of uPy is to implement most ports by a single OS implemented in C/C++. The API for the OS should be common for all ports so only one Python wrapper is required. This separation of the Python and C code would give the programmer the oppertunity to either write their application directly on a well supported C/C++ OS, or in Python, or even a mix of both. Both the "cool things" you mention should be implemented in the C OS, a Python wrapper is written and voila, the features are implemented for all ports. I guess that's not the direction you want to move, but it would certainly be an intresting one!

Btw, thanks for a great project. Really impressive work!

Last, a question:
What is the plan for the Zephyr port? I mean, as MicroPython is such a popular project many OS's want to be part of it and take market shares, just as I with Simba.

@dpgeorge dpgeorge mentioned this pull request Nov 15, 2016
@eerimoq eerimoq closed this May 26, 2018
kamtom480 pushed a commit to kamtom480/micropython that referenced this pull request Jan 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0