MicroPythoning the M4 co-processor on the UDOO Neo

General discussions and questions abound development of code with MicroPython that is not hardware specific.
Target audience: MicroPython Users.
Post Reply
ferrix
Posts: 3
Joined: Fri Feb 05, 2016 3:22 pm

MicroPythoning the M4 co-processor on the UDOO Neo

Post by ferrix » Fri Feb 05, 2016 3:38 pm

I got my UDOO Neo board from the Kickstarter campaign. The big idea behind the board is to bring accelerometers, WiFi, BTLE, this and that on a board that combines Raspberry Pi and Arduino. It really is neither. It has a Cortex A9 and a Cortex M4 which can run at up to 200MHz. That very much reminds me of pyboard. I started thinking, what would it take to run MicroPython on the M4 co-processor.

I have not yet looked into the specs of either board to see what the differences are. So far I know, some of the GPIO pins are shared between the processors but I have no idea whether or not the "Arduino" can access all of the peripherals. The SD card holds the Linux image so it cannot be used in the same manner as the pyboard does. The Linux comes preloaded with a version of the Arduino IDE that can flash the M4 as well as a browser version of the Arduino IDE.

Has anyone else had the same idea? I will be looking into the similarities later today.

ferrix
Posts: 3
Joined: Fri Feb 05, 2016 3:22 pm

Re: MicroPythoning the M4 co-processor on the UDOO Neo

Post by ferrix » Fri Feb 05, 2016 4:47 pm

So far I have verified that the external GPIO pins can be assigned to either of the A9 and M4 processors. According to some of the documentation it would require a boot and some of the earlier (?) text describes how to rebuild the kernel with a different device tree. I have an idle memory that the pins could even be used by both processors as long as there is a means to prevent overlapping use.

Unlike an Arduino, there are two UARTs. The first is dedicated to processor to processor communication and the other is for external communication.

User avatar
dhylands
Posts: 3821
Joined: Mon Jan 06, 2014 6:08 pm
Location: Peachland, BC, Canada
Contact:

Re: MicroPythoning the M4 co-processor on the UDOO Neo

Post by dhylands » Fri Feb 05, 2016 5:34 pm

My understanding is that the M4 can access all of the peripherals (UARTs, Timers, etc).

However, you really need to coordinate those accesses so that linux running on the other processor and the code running on the M4 processor aren't trying to access the same peripherals at the same time.

It seems that the way of communicating between the processors is to use some shared memory, and FreeScale seems to be pushing their MQX RTOS for running on the M4. However this is a closed source OS.

I'm definitely interested in getting MicroPython working on the UDOO Neo, but I have too many other things on the go right now to be able to spend any time on this right now.

ferrix
Posts: 3
Joined: Fri Feb 05, 2016 3:22 pm

Re: MicroPythoning the M4 co-processor on the UDOO Neo

Post by ferrix » Fri Feb 05, 2016 6:13 pm

My initial idea was to replicate whatever their Arduino implementation does. If we're lucky, we just abuse whatever closed source or workarounds they use and Bob's your uncle.

akshayv
Posts: 1
Joined: Wed Aug 09, 2017 8:49 am

Re: MicroPythoning the M4 co-processor on the UDOO Neo

Post by akshayv » Wed Aug 09, 2017 10:22 am

I had the same idea as yours.... just wondering if you have an update?

Post Reply