Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 00:57 25 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Firmware Wish List

     Page 9 of 14    
Author Message
sparkey

Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 819
Posted: 02:10pm 19 Aug 2011
Copy link to clipboard 
Print this post

i wish that it would be possable to get some of our finest members together to work on a rewrite of some of the more basic printers on the market say inkjet epson etc just decide on type and brand ..then see if geoff would be able to get part of the boot block mapped to hold these drivers ...
technicians do it with least resistance
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 07:28pm 19 Aug 2011
Copy link to clipboard 
Print this post

  seco61 said  

The firmware I posted in this thread has this support - I have passed it along to Geoff for consideration. Be aware that as Timer 3 is in use, I only have Timer 2 available as a source for the 2 PWM outputs - so they both run at the same frequency. Of course the duty cycle can be different for both.


That's great! I'm too late with the ideas again <grin>.
I'll take a look and see...
Doesn't seem as if the limitation of a single frequency is all that severe for most uses; it's still a lot better than no PWM.
I hope Geoff decides to incorporate it, since it is our only reasonable chance of having analogue output.

Thanks once more Gerard,

Regards,
Bob
Bob Dalley
http://www.m0rjd.co.uk
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 01:08pm 20 Aug 2011
Copy link to clipboard 
Print this post

Hi List,

Hmmm, I expect that this has already been covered elsewhere,

Wish-list

Maybe not actually useful, but if it can be done...

At present we only ever use the on-board push-button to cause the bootloader to become ready to upload a new firmware.

Wouldn't it be nice if it could be used during normal programme execution. It could, for example, be a 'special' interrupting thing, like the normal pin-interrupt mode but without all the other fancy I/O features which would be out of place. E.G. an 'interrupt-on-press'.

The bootstrap functionality would not be changed by this, since it happens outside of the running interpreter.

Goodness knows how it would be implemented!

Also, in the same vein, how about the possibility of using the 2 pins on the programming header as I/O pins 21 and 22? At the moment they just sit there doing nothing, whereas they could be useful for 'close-coupled' hardware. Pity they cant support I2C for an in-box clock, but they could still be useful.

Regards,
Bob
Bob Dalley
http://www.m0rjd.co.uk
 
VK6MRG

Guru

Joined: 08/06/2011
Location: Australia
Posts: 347
Posted: 01:22pm 20 Aug 2011
Copy link to clipboard 
Print this post

If we had the 100 pin version of the PIC32, we could have 40 I/O pins, PWM, colour, I2C and serial with a few pins to spare.

Its easier to ask forgiveness than to seek permission!

............VK6MRG.............VK3MGR............
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 02:10pm 20 Aug 2011
Copy link to clipboard 
Print this post

  Bob said   Hi List,

Hmmm, I expect that this has already been covered elsewhere,

Wish-list

Maybe not actually useful, but if it can be done...

At present we only ever use the on-board push-button to cause the bootloader to become ready to upload a new firmware.

Wouldn't it be nice if it could be used during normal programme execution. It could, for example, be a 'special' interrupting thing, like the normal pin-interrupt mode but without all the other fancy I/O features which would be out of place. E.G. an 'interrupt-on-press'.

The bootstrap functionality would not be changed by this, since it happens outside of the running interpreter.

Goodness knows how it would be implemented!

Also, in the same vein, how about the possibility of using the 2 pins on the programming header as I/O pins 21 and 22? At the moment they just sit there doing nothing, whereas they could be useful for 'close-coupled' hardware. Pity they cant support I2C for an in-box clock, but they could still be useful.

Regards,
Bob


Hi Bob.

The push button is available for input - if you issue a "x = PIN(0)" command x will contain the state of the push button.

As regards the ICSP pins, I have been under the impression that they are not available for normal use - but I may be wrong! The data sheets are a bit vague regarding this....

Regards

Gerard (vk3cg/vk3grs)
 
jebz

Regular Member

Joined: 13/06/2011
Location: Australia
Posts: 79
Posted: 11:22pm 20 Aug 2011
Copy link to clipboard 
Print this post

  seco61 said  
  Bob said  
As regards the ICSP pins, I have been under the impression that they are not available for normal use - but I may be wrong! The data sheets are a bit vague regarding this....


I've used the analogue pins on the WIB DSPIC33 for ICSP as well. You'll find many circuits that add resistors to allow dual purpose on the ICSP pins. The circuit just needs to ensure that the programmer can drive the connected circuitry for programming purposes. If the pins were outputs this would be easy.
 
ajkw
Senior Member

Joined: 29/06/2011
Location: Australia
Posts: 290
Posted: 12:53am 21 Aug 2011
Copy link to clipboard 
Print this post

...and I thought pin 0 was just the green led on the front panel. It is when you set a value to pin 0, ie to flash the led, but when reading it is indeed the state of the push button.

It is a pity that pin 0 is not available with the command

5 setpin 0,6,nnnn

which would make it potentially more useful than constantly/manually checking it's state.

"Error line 5: Invalid Configuration value"
Anthony.

A simple demonstration program

10 do
20 pin(0) = pin(0)
30 loop

 
sparkey

Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 819
Posted: 02:57am 21 Aug 2011
Copy link to clipboard 
Print this post

would it ever be possible to have some eeram provided on the maxi to store programs like for instance my inverter program so once loaded into the eeram having the SM1 board with its rtc battery holding the file alive so that once its programmed in you could call it up wiyh out having to have a sd card other than to load it into the eeram/rom needless to say u could have several maxi`s and only need the one sd card ...reason for this wish is that i only have one sd card and four maxi`x two SM1`s one altro and one EV embedded this has micro sd card and i dont have an adaptor gets frustrrating i know but where theses a will the then becomes a way ..necessity..is the mother of invention ..and well you cannot stop progress...regards sparkey
technicians do it with least resistance
 
Keith @

Senior Member

Joined: 19/06/2011
Location: Australia
Posts: 167
Posted: 03:30am 21 Aug 2011
Copy link to clipboard 
Print this post

Hey Sparkey

Buying some more SD cards is probably the easiest and cheapest option.

If the MM has battery backup and is put to sleep it will retain the program in it's own memory once loaded.

Wish for "sleep mode" and "idle mode" to be enabled in MMBasic.

Keith
The more we know, the more we know we don't know !
 
sparkey

Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 819
Posted: 07:48am 21 Aug 2011
Copy link to clipboard 
Print this post

kinda thought thats the answer i would get ...regards sparkey
technicians do it with least resistance
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 08:26am 21 Aug 2011
Copy link to clipboard 
Print this post

Hi Gerard,

Wow, thanks for the info on reading the switch as pin 0! I didn't see this in the docs...

I expect there are lots of other comments on this (time-shift effect) but here goes:

The programming pins can have a range of functions just like any others. Most useful perhaps is to be extra I/O.
When the device programmer asserts Vprog on the \MR pin, these 2 pins switch to the programming function internally, so it is necessary to avoid hanging circuitry on them that would affect this. But since we have a convenient connector there, that can't have 2 things plugged in at the same time, all those conditions are solved.

Regards,
Bob

  seco61 said  
  Bob said   Hi List,

Hmmm, I expect that this has already been covered elsewhere,

Wish-list

Maybe not actually useful, but if it can be done...

At present we only ever use the on-board push-button to cause the bootloader to become ready to upload a new firmware.

Wouldn't it be nice if it could be used during normal programme execution. It could, for example, be a 'special' interrupting thing, like the normal pin-interrupt mode but without all the other fancy I/O features which would be out of place. E.G. an 'interrupt-on-press'.

The bootstrap functionality would not be changed by this, since it happens outside of the running interpreter.

Goodness knows how it would be implemented!

Also, in the same vein, how about the possibility of using the 2 pins on the programming header as I/O pins 21 and 22? At the moment they just sit there doing nothing, whereas they could be useful for 'close-coupled' hardware. Pity they cant support I2C for an in-box clock, but they could still be useful.

Regards,
Bob


Hi Bob.

The push button is available for input - if you issue a "x = PIN(0)" command x will contain the state of the push button.

As regards the ICSP pins, I have been under the impression that they are not available for normal use - but I may be wrong! The data sheets are a bit vague regarding this....

Bob Dalley
http://www.m0rjd.co.uk
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 08:39am 21 Aug 2011
Copy link to clipboard 
Print this post

Hi ajkw,

Certainly if the switch cannot interrupt (setpin 0,7,nnnn is probably most useful) then it is not so handy. The ability to interrupt is far more useful than the ability to be read, in this case.

One problem beloved of switches is that they have contact bounce both on being pressed and released - some worse than others. So an interrupt would be generated on each bounce; could be tens of interrupts in a bunch. This might not be so easy to deal with at BASIC level. Maybe the interrupt sampling code (I'm thinking of Gerard's latest method) could either sample slowly (at say 5ms intervals rather than 10s of microseconds) or could employ software debouncing (which would be an overhead). Most switches finish bouncing by 10ms, so probably the reduced sampling rate is the best option. But maybe I'm ahead of myself!
At least we know that there will always be a push-button switch connected here - except by ad-hoc modders.

Regards,
Bob

  ajkw said   ...and I thought pin 0 was just the green led on the front panel. It is when you set a value to pin 0, ie to flash the led, but when reading it is indeed the state of the push button.

It is a pity that pin 0 is not available with the command

5 setpin 0,6,nnnn

which would make it potentially more useful than constantly/manually checking it's state.

Bob Dalley
http://www.m0rjd.co.uk
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 11:00am 22 Aug 2011
Copy link to clipboard 
Print this post

OK, I promise this will be my last 'wish' (until the next one).

Wouldn't it be jolly useful if we could 'burn' a MMBasic programme into Flash and have it execute at power-on?

For example, debug it in the usual RAM-based manner, then have the ability (in 'immediate mode' only) to push it into Programme Flash to be executed at subsequent switch-ons.

This is superior to saving it as a startup programme on SDcard, for many reasons, maybe chiefly:
* 'Canned' usage is secure & hidden from user,
* Doesn't depend on SDCard being present,
* Makes a self-contained functional unit (e.g. datalogger or concrete-mix controller).

There would need to be a way of breaking out of it, say by pressing the on-board push-button (or maybe a new BASIC command to exit it, so it is programmable anyway).
Also there would be other considerations: overwriting, disabling, does it copy the prog to RAM and execute, different MMBasic version compatibility, etc.
Maybe it could chain out to a RAM-based programme or command prompt if required? Then it could even be used for such items as setting time from an I2C clock-chip...

I believe it is within the capability of the PIC32 to do this (using own programme memory to hold user data).
There might need to be new MMBasic commands, but the hardware wouldn't change in any way.

Regards,
Bob
Bob Dalley
http://www.m0rjd.co.uk
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1313
Posted: 07:06pm 22 Aug 2011
Copy link to clipboard 
Print this post


Bob,

Geoff has had this in mind for many months now.

I believe it may be a feature used in his next Silicon Chip project.

Cheers Don...
https://www.dontronics.com
 
Bob

Regular Member

Joined: 11/08/2011
Location: United Kingdom
Posts: 41
Posted: 08:31am 23 Aug 2011
Copy link to clipboard 
Print this post

Hi Don,

  donmck said  
Bob,

Geoff has had this in mind for many months now.

I believe it may be a feature used in his next Silicon Chip project.

Cheers Don...


That's great news. I'll just wait patiently ;-).

Regards,
Bob
Bob Dalley
http://www.m0rjd.co.uk
 
Dinosaur

Guru

Joined: 12/08/2011
Location: Australia
Posts: 311
Posted: 06:37am 25 Aug 2011
Copy link to clipboard 
Print this post

Hi all

One more suggestion for the wish list.
Don't know if it is possible, BUT
The PWM feature can be used to control the output pins to clock a stepper motor controller. Currently I buy M542's from Ocean Controls, but I have to clock them.
I have been doing this with the Paralel port, which is cumbersome.

So, now for the request.
An extra value onto the PWM command to specify the number of steps / Clocks after which it stops. IE:SETPIN 7,10,500,50,25 = Pin 7 at 500 hz with 50% duty cycle for 25 steps.
I use them for opening Gates (thus the fixed number of steps) and for Feeding belts. But from there anyone can then use the MaxiMite as an X/Y controller, whilst running an application on the same board, which is not available on the market.

Regards
Regards
Hervey Bay Qld.
 
Gizmo

Admin Group

Joined: 05/06/2004
Location: Australia
Posts: 5078
Posted: 06:42am 25 Aug 2011
Copy link to clipboard 
Print this post

I would just use a incrementing loop to do that, like a for-next loop. The idea of a PWM output pin is it free runs in the background until its told to do something different. But it may be easy to add this extra parameter to the PWM commands, you never know.

Glenn
The best time to plant a tree was twenty years ago, the second best time is right now.
JAQ
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1313
Posted: 07:39am 25 Aug 2011
Copy link to clipboard 
Print this post


Dinosaur, if you can format the wish into a single text line, much like the ones shown at:

http://www.themaximitecomputer.com/wish-list-priority-level- poll/

I'll add it and see how it goes.

Cheers Don...
https://www.dontronics.com
 
Dinosaur

Guru

Joined: 12/08/2011
Location: Australia
Posts: 311
Posted: 08:07am 25 Aug 2011
Copy link to clipboard 
Print this post

Hi All

Thanks Don.

Modify PWM Command to accept a Target number of output pulses.

Regards
Regards
Hervey Bay Qld.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1313
Posted: 08:10am 25 Aug 2011
Copy link to clipboard 
Print this post

  Dinosaur said   Hi All

Thanks Don.

Modify PWM Command to accept a Target number of output pulses.

Regards


Done!

Wish 35: Modify PWM Command to accept a Target number of output pulses.

Cheers Don...
https://www.dontronics.com
 
     Page 9 of 14    
Print this page
© JAQ Software 2024