Go Down

Topic: STM32, Maple and Maple mini port to IDE 1.5.x (Read 625012 times) previous topic - next topic

rogerClark

OK.

I've taken a look at the way 1.6.2 does things, and there isnt a way to use the Boards Manager for anything other than Arduino LLC boards

I strongly suspect this has something to do with the ongoing internal battle

I've had a go at updating the package data file, but the IDE reloads it every time the popup is opened, and overwrites whatever new data I put in the file.

What is really needed is a way to add external repo's to the board manager, but if the reason for it is truely to get back at Arduino Srl, then I doubt they will take kindly to any additions to the IDE to add external boards that Arduino LLC don't manage

e.g. they won't want the Zero Pro being added I suspect.

However in terms of the Arduino community and what the IDE is supposed to achieve, adding additional e.g. untrusted sources, like you can do for Linux distro's seems the logical method


Anyway, I've cloned the whole IDE and I will work on a pull request to do just that


In the mean time.

I could modify the repo to work with 1.6.2 by changing the compilor path

Or if worst comes to worst I could repackage the compilor as part of the repo, as its possible to include external zips into a "Release" package


Its kind of hard to know what to do for the best at the moment

Any ideas ??
Freelance developer and IT consultant
www.rogerclark.net

unprinted

I've taken a look at the way 1.6.2 does things, and there isnt a way to use the Boards Manager for anything other than Arduino LLC boards

I strongly suspect this has something to do with the ongoing internal battle.
Quite probably, but this is a silly thing for them to do: it just encourages people to get their IDE from somewhere else like, oh, some other arduino.something domain.

rogerClark

@ unprinted

The reason I've been given is to reduce install size.

Apparently they will fix the issue with the AVR compilor path, in the nightly builds, but that more complex changes need to be evaluated, and that third party boards can be submitted to them to see if they should be included

However this doesn't really help us that much, because the STM32 is far from a 100% working set of boards (and nor are quite a few of the other third party hardware solutions) e.g. ESP8266 doesnt have a lot of core features, so would probably not be added

I will continue to push for a way to add additional boards via the Board Manager and will attempt to build the IDE from source tomorrow (once I sort out my issues with JDK and Ant etc etc)

In the mean time I've updated my Readme and also the wiki and added an issue to say 1.6.2+ is not currently supported

Freelance developer and IT consultant
www.rogerclark.net

mrburnette

#2088
Mar 31, 2015, 02:09 pm Last Edit: Mar 31, 2015, 02:15 pm by mrburnette
Quote
Or if worst comes to worst I could repackage the compilor as part of the repo, as its possible to include external zips into a "Release" package
Its kind of hard to know what to do for the best at the moment

Any ideas ??
Quote
I will continue to push for a way to add additional boards via the Board Manager and will attempt to build the IDE from source tomorrow (once I sort out my issues with JDK and Ant etc etc)

In the mean time I've updated my Readme and also the wiki and added an issue to say 1.6.2+ is not currently supported
@Roger:
Your approach seems the prudent one at this time.  However, from a philosophical perspective, I think that packaging a GUI into the github download is a kiss-of-death.  This is what happened to LeafLabs and it makes a quantum jump nearly impossible: just look at the effort you have expended as well as the input from others to get to where we are today.  In my mind, there is little choice but to ride out the Arduino/Arduino wars on a version by version basis.

Arduino.cc has a number of "certified" products, so a methodology will need to be continued to allow them to integrate with the GUI.  As long as that door is not closed by 'code signing', I think we should be alright.

Installing "Due" to get the compiler installed does not seem to be a problem, in my thinking.  It is always good to have an install done by the GUI so that the rules for installation are proper for the environment.  We should be able to live with that requirement.


Ray

Bonzox

He Guys,
I just spend more then a day trying to the CardInfo example running on a maple mini board.
The SD is wired to SPI2 and chip select is on pin D14. It's hard wired so I cannot change it for testing.
Should the SPI2 work or am I chasing something that is not meant to be (yet?)
( it works correctly with the original maple stuff, but I want to use the arduino IDE because it has a more recent libmaple under the hood)
I have an Olimex maple-clone that also uses SPI2 for its SD card but it has the same problem.

Please give me some pointers as I think I am in uncharted territories.

Cheers

victor_pv

@Roger

I was testing the DMATransfer with the SD card. It did not work for the sdcard for several reasons.
First Greiman uses one buffer, and either setup TX with that buffer, or only RX and TX is sending FF over and over. I had to change a few things in the SPI transfer function and make it conditional with a couple of If, but then there was one single ISR that would disable both RX and TX, so I had to make more changes, or it would disable TX before RX was finished.
Now I have it working, but I have made too many changes.
I will try to remove whatever is not needed, and pass it back to you, see how we can make it efficient, I remember you said a while back that conditions can kill performance on ARMs.
On the other hand those conditions are mostly preventing some code from being executed that it would be executed if not, so they may not have that huge penalty.
I am going to do a performance test like it is right now to compare it to how it was done in the sdfat library.

madias

#2091
Mar 31, 2015, 09:31 pm Last Edit: Mar 31, 2015, 11:41 pm by madias
I see big dark clouds over the arduino team/project, the only winner will be the lawers.
When worse comes to worse the STM32-Arduino project will get a new home at UECIDE for sure.
edit: sorry for the misleading link, was only a dictionary website  I use for translating german phrases ;)

rogerClark

He Guys,
I just spend more then a day trying to the CardInfo example running on a maple mini board.
The SD is wired to SPI2 and chip select is on pin D14. It's hard wired so I cannot change it for testing.
Should the SPI2 work or am I chasing something that is not meant to be (yet?)
( it works correctly with the original maple stuff, but I want to use the arduino IDE because it has a more recent libmaple under the hood)
I have an Olimex maple-clone that also uses SPI2 for its SD card but it has the same problem.

Please give me some pointers as I think I am in uncharted territories.

Cheers
I'm not sure if anyone has tested SPI2 since I converted the Hardware SPI class to be the normal Arduino SPIClass with automatic instantiate on of the global variable SPI being SPI channel 1

I can't recall if I removed the old leaflabs HardwareSPI class, I don't think so.
So you could try instantiating that class instead

I will need to take a look at the SPIClass and get back to you.

Ps. Chip select pin should not be the problem, as libmaple has never use the hardware chip select feature of the STM32 ( NSS )

Have you tried using SPI1 or do you have hard wired connections that can't be moved?
Freelance developer and IT consultant
www.rogerclark.net

rogerClark

@victor

Thanks for looking at SD SPI. I spent most of yesterday trying to work out how to deal with the issues in 1.6.2, so have not had time even to test my old SD setup

@Ray

I think that the IDE team have got the message and are putting fixes in to address at least the path issue.

I agree that needing to install the Due is not a major problem, but is counter intuitive


I did some experiments yesterday and managed to add the STM32 boards via the boards manager, however I had to fool the IDE into thinking my local machines web server was http://www.arduino.cc as it very actively downloads the package file.
I'd say its overly active in this respect, and will be hitting there servers every time anyone opens that popup to download the file again, and again, and again

I don't feel its necessary to do this every time the popup is opened, and I've written systems that do similar things, and I have a version number in the package file, to determine whether or not it needs to be updated.

I had a thought, again a minor hack, but the IDE stores the URL of the package file in its internal settings.
I'm not sure which file this ends I being stored in, possibly the registry in windows ( other places on OSX and Linux), but just to test deployment via the boards manager, I may just be able to update that registry key to get the package description from the GitHub repo instead of arduino.cc


@matthias

I'm not sure what's going to happen with Arduino, but thanks for the link.
Freelance developer and IT consultant
www.rogerclark.net

mrburnette

#2094
Apr 01, 2015, 01:53 am Last Edit: Apr 01, 2015, 01:55 am by mrburnette
I see big dark clouds over the arduino team/project, the only winner will be the lawers.
When worse comes to worse the STM32-Arduino project will get a new home at UECIDE for sure.
edit: sorry for the misleading link, was only a dictionary website  I use for translating german phrases ;)
Interesting....
@madias...
are we at this point now?  I have played with UECIDE, but not added cores such as attiny or 1284.  In your opinion, is this a major effort or does 99% of the current effort translate?  

Just my thoughts, but I hate lawyers almost as much as I hate my prior employer.  I am just one voice but if Arduino is going to have call-home capabilities, I think we should jump this runaway train ASAP.  We are a small group and have little ties to mother 'duino other than syntax.


Ray

rogerClark

I am just one voice but if Arduino is going to have call-home capabilities, I think we should jump this runaway train ASAP.
Fortunately the whole IDE is in github, so its possible to fork and change it if necessary

But i agree that fragmentation and everyone having their own flavor of IDE won't help anyone.

So I can't quit see it coming to that, unless all parties involve are hell bent on self destruction.
Freelance developer and IT consultant
www.rogerclark.net

madias

The step to integrate STM32-Arduino should be very easy, but I see two points not to do that now:
1. UECIDE do big changes at the moment (internal structures,...), so the latest beta is still alpha. (but runs like "stable" compared like other software ;) )
2. We (Roger)  should decide when our (his)  release is "stable", I think we are at 95-98%  
When both parties are ready, we just drop majenko a little note, so he would add STM32-Arduino into the plugin manager of UECIDE. The big advantage is, that running STM32-Arduino as plugin in UECIDE it would be  linked direct to github, so every change can be done within the IDE just with the "update" button.

rogerClark

Matthias

I think it may be worth waiting until I've added the new boards F103R, F103V and F103Z series

and I will remove some old / not much used boards e.g. I'm not sure anyone uses Alexey's "Maple mini generic" as many of his menu's no longer work
Freelance developer and IT consultant
www.rogerclark.net

madias

I think that's a good idea, so we have (nearly) the whole STM32-F1xxx spectrum in one folder and yes, I do not use the "maple mini generic" anymore. (Meanwhile the "microduino" is also a little lonely island...) 

rogerClark

Just as a matter of interest, with the help of Ivan on the esp8266 forum, we figured out how to tell the 1.6.2 ide to load an alternative package_index.json file

Its probably not worth spending time on creating a package at the moment, but anyone how is interested in messing around, here is the info

Note, you do this at your own risk, (I messed up at one point and had to delete my cached package_index.json file  - which is %appdata%\arduino15


Anyway...

On widows, you edit the file C:\Program Files (x86)\Arduino\arduino.l4j.ini and add in an extra line which specifies the address of the package_index.json file

So the ini file could look like this

Code: [Select]
-Xms128M
-Xmx512M
-DPACKAGE_INDEX_URL=http://www.rogerclark.net/downloads/package_index.json


Note. For testing all, I did was change the name "Arduino" to "Super-Arduino" just to confirm it works

If you change this then reload the IDE and go to the boards menu it will have changed the text that is downloaded

Freelance developer and IT consultant
www.rogerclark.net

Go Up