Re: [Amforth] Newbie with a mega2560

2021-06-18 Thread Michael Picco

Hello Erich,

I've dusted off an MSP430 board I have here and might have to load it 
with noforth just to get an idea of what his code is doing with the BME280.


He uses some sort of defining word called 'value', that I need to look 
up with the MSP430.
There are a lot of others that will jump out as I pour over this 
listing, I'm sure.


Getting ready for our Field Day weekend, which starts tomorrow at 11:00 
local time and runs through Sunday 11:00.  This will be the last year we 
work under COVID rules, meaning I work from home and log via the 
internet. We normally head out for a camping weekend on some Forest 
Service land that we obtain a permit to use.  It's located at around 
6500 feet and gives us nice coverage.


Have you tried experimenting with the MSP430?  As I remember, I picked 
up a few of these boards back when they first were introduced.  I bought 
a few of them (called Launchpads) and played with one for a while, but 
wanted to more than it was capable of at the time.


So many parts ... so little time ... !!  :)

Kind regards,

Michael
k6MLE

On 6/17/2021 2:38 AM, Erich Wälde wrote:

Hello Michael,

Michael Picco  writes:


Hello!

I finally have figured out how to efficiently interact with Amforth on my
mega2560 and have installed much of the I2C stuff on it.

Good!


Question:

Has anyone worked out how to talk to the BME280 sensor using Amforth?  Wading
through the spec sheet tells me it's going to be a challenge.  It would be
nice not to reinvent the 'wheel', if someone has already done the
heavy-lifting!

I have, much to my dismay, spent more than 20 hours on this. Not
once in my life have I seen such an awkward interface.
Unbelievable.

The C code on
https://github.com/BoschSensortec/BME280_driver/blob/master/bme280.c
is working. It is just not meaningfully documented. Code using
this can be found here
https://github.com/adafruit/Adafruit_BME280_Library

You have to very carefully study the datasheet and obey the
"signed" vs. "unsigned" song and dance. I have written C code to
see, whether my intermediate calculations were correct. I have
managed to calculate temperature and humidity. The humidity
values were significantly too low (I do have more sensors). And
on pressure values I gave up after wading through about halfway.

That being said: I was pointed to a working implementation for
noForth on MSP430, published in "Vierte Dimension" 2020-01
https://forth-ev.de/wiki/vd-archiv


As I said, working the sensor with C is ok, since the adafruit
library is written and working. Working the sensor in Forth is
kind of horrible, because you need to reverse engineer the
calculation. WHY not spending the silicon to do the calculation
"on board" and produce linear, compensated readings is beyond my
imagination.

I pulled the one BME280 sensor out, I will happily give it away.
And I ordered a handful of expensive Sensirion SHT85 sensors for
temperature, humidity and a mpx6115 sensor for pressure (needs
an ADC). The sensirion sensors worked for me after a couple
hours. I did not figure out, how to check the crc that comes
with the data --- but that is left for another time.

I can send my code re. BME289 your way, if you are interested.
But do not spend countless hours on a misdesigned interface ...


Cheers,
Erich





___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-17 Thread Erich Wälde
Hello Michael,

Michael Picco  writes:

> Hello!
>
> I finally have figured out how to efficiently interact with Amforth on my
> mega2560 and have installed much of the I2C stuff on it.
Good!

>
> Question:
>
> Has anyone worked out how to talk to the BME280 sensor using Amforth?  Wading
> through the spec sheet tells me it's going to be a challenge.  It would be
> nice not to reinvent the 'wheel', if someone has already done the
> heavy-lifting!

I have, much to my dismay, spent more than 20 hours on this. Not
once in my life have I seen such an awkward interface.
Unbelievable.

The C code on
https://github.com/BoschSensortec/BME280_driver/blob/master/bme280.c
is working. It is just not meaningfully documented. Code using
this can be found here
https://github.com/adafruit/Adafruit_BME280_Library

You have to very carefully study the datasheet and obey the
"signed" vs. "unsigned" song and dance. I have written C code to
see, whether my intermediate calculations were correct. I have
managed to calculate temperature and humidity. The humidity
values were significantly too low (I do have more sensors). And
on pressure values I gave up after wading through about halfway.

That being said: I was pointed to a working implementation for
noForth on MSP430, published in "Vierte Dimension" 2020-01
https://forth-ev.de/wiki/vd-archiv


As I said, working the sensor with C is ok, since the adafruit
library is written and working. Working the sensor in Forth is
kind of horrible, because you need to reverse engineer the
calculation. WHY not spending the silicon to do the calculation
"on board" and produce linear, compensated readings is beyond my
imagination.

I pulled the one BME280 sensor out, I will happily give it away.
And I ordered a handful of expensive Sensirion SHT85 sensors for
temperature, humidity and a mpx6115 sensor for pressure (needs
an ADC). The sensirion sensors worked for me after a couple
hours. I did not figure out, how to check the crc that comes
with the data --- but that is left for another time.

I can send my code re. BME289 your way, if you are interested.
But do not spend countless hours on a misdesigned interface ...


Cheers,
Erich

-- 
May the Forth be with you ...


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-16 Thread Michael Picco

Hello!

I finally have figured out how to efficiently interact with Amforth on 
my mega2560 and have installed much of the I2C stuff on it.


Question:

Has anyone worked out how to talk to the BME280 sensor using Amforth?  
Wading through the spec sheet tells me it's going to be a challenge.  It 
would be nice not to reinvent the 'wheel', if someone has already done 
the heavy-lifting!


Kind regards,

Michael

K6MLE



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-04 Thread Tristan Williams
Hi Michael,

Glad it is working.

I use amforth-shell.py which is in the tools directory. It needs
python3 and pySerial to be installed to work.

A basic command line looks like this

amforth-shell.py --port DEVICE --speed 38400 FILE_TO_UPLOAD

but there are many other options and commands (such as the directive
#include). The documentation is in the python3 source.  

Best wishes,
Tristan


On 03Jun21 21:43, Michael Picco wrote:
> Hi Tristan,
> 
> I've got it up and running; even adding 'marker'.
> You have probably mentioned it before, but what is the best interface to use
> that will allow me to upload source files?
> 
> Thank you for your patience!
> 
> Kind regards,
> 
> Michael
> 
> On 6/2/2021 8:36 AM, Tristan Williams wrote:
> > Hi Michael,
> > 
> > I used
> > 
> > FUSE : -U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
> > 
> > Best wishes,
> > Tristan
> > 
> > On 02Jun21 07:14, Placerville.me wrote:
> > > Hello Tristan,
> > > Thank you for this!  I will give it a try later today.  What fuse 
> > > settings did you use?
> > > 
> > > Kind regards,
> > > 
> > > Michael
> > > 
> > > Sent from my iPhone
> > > 
> > > > On Jun 2, 2021, at 01:18, Tristan Williams  wrote:
> > > > 
> > > > Hi Michael,
> > > > 
> > > > I hope you got AmForth to build successfully under windows for the
> > > > atmega2560, but if not, I have built it for my Arduino MEGA using the
> > > > most recent source (r2457).
> > > > 
> > > > https://sourceforge.net/p/amforth/code/HEAD/tree/trunk/
> > > > 
> > > > I have uploaded the resulting hex files to
> > > > 
> > > > https://tjnw.co.uk/amforth-bin/
> > > > 
> > > > I also loaded marker.frt onto the Arduino MEGA and checked that it
> > > > does what it should do (see [1]).
> > > > 
> > > > Best wishes,
> > > > Tristan
> > > > 
> > > > [1] http://amforth.sourceforge.net/TG/recipes/Forget.html
> > > > 
> > > > > On 24May21 17:57, Michael Picco wrote:
> > > > > Hello Martin,
> > > > > Thank you for responding!
> > > > > In my work directory, which is aptly named 'amforth-6.9', I don't see 
> > > > > a copy
> > > > > of the template.asm file with "amforth-low.asm" mentioned.  The
> > > > > amforth-low.asm file is referenced in the avr8 subdirectory.  Is there
> > > > > something I am missing?
> > > > > 
> > > > > Kind regards,
> > > > > Michael
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > > On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:
> > > > > > The crucial file to include for an ATmega is the confusingly named:
> > > > > > "amforth-low.asm" which needs to be un-commented in template.asm.
> > > > > > 
> > > > > > All the code is then in low flash memory apart from the flash 
> > > > > > burning
> > > > > > routine which should be found at NRWW_START_ADDR (0x01f000).
> > > > > > 
> > > > > > Often, with a new device, you need to burn the fuses "make 
> > > > > > write-fuse",
> > > > > > before flashing (and burning fuses for a second time) with "make
> > > > > > install".
> > > > > > 
> > > > > 
> > > > > 
> > > > > ___
> > > > > Amforth-devel mailing list for http://amforth.sf.net/
> > > > > Amforth-devel@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> > > > 
> > > > ___
> > > > Amforth-devel mailing list for http://amforth.sf.net/
> > > > Amforth-devel@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> > > 
> > > 
> > > ___
> > > Amforth-devel mailing list for http://amforth.sf.net/
> > > Amforth-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> > 
> > ___
> > Amforth-devel mailing list for http://amforth.sf.net/
> > Amforth-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> 
> 
> 


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-02 Thread Mark Roth
On Wed, Jun 2, 2021 at 6:37 PM Tristan Williams  wrote:

> Hi Michael,
>
> I used
>
> FUSE : -U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
>
> Best wishes,
> Tristan
>
> That makes sense. It's the same high fuse setting as I suggested but with
the jtag interface activated. I don't use that so I turned it off. Where
did you get the 0xDC setting for that fuse from? It really does seem to be
incorrect for a chip with 4k bootloader. Having just looked back into the
atmega2561 appl directory I just realized there isn't a makefile (or I
suppose, a bat file for windows) with the amforth defauts in it. I was just
getting ready to burn this into old 3D printer mega when I saw Tristan had
already done just that.

Good luck with the project!
Mark



> On 02Jun21 07:14, Placerville.me wrote:
> > Hello Tristan,
> > Thank you for this!  I will give it a try later today.  What fuse
> settings did you use?
> >
> > Kind regards,
> >
> > Michael
> >
> > Sent from my iPhone
> >
> > > On Jun 2, 2021, at 01:18, Tristan Williams  wrote:
> > >
> > > Hi Michael,
> > >
> > > I hope you got AmForth to build successfully under windows for the
> > > atmega2560, but if not, I have built it for my Arduino MEGA using the
> > > most recent source (r2457).
> > >
> > > https://sourceforge.net/p/amforth/code/HEAD/tree/trunk/
> > >
> > > I have uploaded the resulting hex files to
> > >
> > > https://tjnw.co.uk/amforth-bin/
> > >
> > > I also loaded marker.frt onto the Arduino MEGA and checked that it
> > > does what it should do (see [1]).
> > >
> > > Best wishes,
> > > Tristan
> > >
> > > [1] http://amforth.sourceforge.net/TG/recipes/Forget.html
> > >
> > >> On 24May21 17:57, Michael Picco wrote:
> > >> Hello Martin,
> > >> Thank you for responding!
> > >> In my work directory, which is aptly named 'amforth-6.9', I don't see
> a copy
> > >> of the template.asm file with "amforth-low.asm" mentioned.  The
> > >> amforth-low.asm file is referenced in the avr8 subdirectory.  Is there
> > >> something I am missing?
> > >>
> > >> Kind regards,
> > >> Michael
> > >>
> > >>
> > >>
> > >>
> > >>> On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:
> > >>> The crucial file to include for an ATmega is the confusingly named:
> > >>> "amforth-low.asm" which needs to be un-commented in template.asm.
> > >>>
> > >>> All the code is then in low flash memory apart from the flash burning
> > >>> routine which should be found at NRWW_START_ADDR (0x01f000).
> > >>>
> > >>> Often, with a new device, you need to burn the fuses "make
> write-fuse",
> > >>> before flashing (and burning fuses for a second time) with "make
> > >>> install".
> > >>>
> > >>
> > >>
> > >>
> > >> ___
> > >> Amforth-devel mailing list for http://amforth.sf.net/
> > >> Amforth-devel@lists.sourceforge.net
> > >> https://lists.sourceforge.net/lists/listinfo/amforth-devel
> > >
> > >
> > > ___
> > > Amforth-devel mailing list for http://amforth.sf.net/
> > > Amforth-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> >
> >
> >
> > ___
> > Amforth-devel mailing list for http://amforth.sf.net/
> > Amforth-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/amforth-devel
>
>
> ___
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel
>

___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-02 Thread Tristan Williams
Hi Michael,

I used

FUSE : -U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xff:m

Best wishes,
Tristan

On 02Jun21 07:14, Placerville.me wrote:
> Hello Tristan,
> Thank you for this!  I will give it a try later today.  What fuse settings 
> did you use?
> 
> Kind regards,
> 
> Michael 
> 
> Sent from my iPhone
> 
> > On Jun 2, 2021, at 01:18, Tristan Williams  wrote:
> > 
> > Hi Michael,
> > 
> > I hope you got AmForth to build successfully under windows for the
> > atmega2560, but if not, I have built it for my Arduino MEGA using the
> > most recent source (r2457).
> > 
> > https://sourceforge.net/p/amforth/code/HEAD/tree/trunk/
> > 
> > I have uploaded the resulting hex files to
> > 
> > https://tjnw.co.uk/amforth-bin/
> > 
> > I also loaded marker.frt onto the Arduino MEGA and checked that it
> > does what it should do (see [1]).
> > 
> > Best wishes,
> > Tristan
> > 
> > [1] http://amforth.sourceforge.net/TG/recipes/Forget.html
> > 
> >> On 24May21 17:57, Michael Picco wrote:
> >> Hello Martin,
> >> Thank you for responding!
> >> In my work directory, which is aptly named 'amforth-6.9', I don't see a 
> >> copy
> >> of the template.asm file with "amforth-low.asm" mentioned.  The
> >> amforth-low.asm file is referenced in the avr8 subdirectory.  Is there
> >> something I am missing?
> >> 
> >> Kind regards,
> >> Michael
> >> 
> >> 
> >> 
> >> 
> >>> On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:
> >>> The crucial file to include for an ATmega is the confusingly named:
> >>> "amforth-low.asm" which needs to be un-commented in template.asm.
> >>> 
> >>> All the code is then in low flash memory apart from the flash burning
> >>> routine which should be found at NRWW_START_ADDR (0x01f000).
> >>> 
> >>> Often, with a new device, you need to burn the fuses "make write-fuse",
> >>> before flashing (and burning fuses for a second time) with "make
> >>> install".
> >>> 
> >> 
> >> 
> >> 
> >> ___
> >> Amforth-devel mailing list for http://amforth.sf.net/
> >> Amforth-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/amforth-devel
> > 
> > 
> > ___
> > Amforth-devel mailing list for http://amforth.sf.net/
> > Amforth-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/amforth-devel
> 
> 
> 
> ___
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-02 Thread Placerville.me
Hello Tristan,
Thank you for this!  I will give it a try later today.  What fuse settings did 
you use?

Kind regards,

Michael 

Sent from my iPhone

> On Jun 2, 2021, at 01:18, Tristan Williams  wrote:
> 
> Hi Michael,
> 
> I hope you got AmForth to build successfully under windows for the
> atmega2560, but if not, I have built it for my Arduino MEGA using the
> most recent source (r2457).
> 
> https://sourceforge.net/p/amforth/code/HEAD/tree/trunk/
> 
> I have uploaded the resulting hex files to
> 
> https://tjnw.co.uk/amforth-bin/
> 
> I also loaded marker.frt onto the Arduino MEGA and checked that it
> does what it should do (see [1]).
> 
> Best wishes,
> Tristan
> 
> [1] http://amforth.sourceforge.net/TG/recipes/Forget.html
> 
>> On 24May21 17:57, Michael Picco wrote:
>> Hello Martin,
>> Thank you for responding!
>> In my work directory, which is aptly named 'amforth-6.9', I don't see a copy
>> of the template.asm file with "amforth-low.asm" mentioned.  The
>> amforth-low.asm file is referenced in the avr8 subdirectory.  Is there
>> something I am missing?
>> 
>> Kind regards,
>> Michael
>> 
>> 
>> 
>> 
>>> On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:
>>> The crucial file to include for an ATmega is the confusingly named:
>>> "amforth-low.asm" which needs to be un-commented in template.asm.
>>> 
>>> All the code is then in low flash memory apart from the flash burning
>>> routine which should be found at NRWW_START_ADDR (0x01f000).
>>> 
>>> Often, with a new device, you need to burn the fuses "make write-fuse",
>>> before flashing (and burning fuses for a second time) with "make
>>> install".
>>> 
>> 
>> 
>> 
>> ___
>> Amforth-devel mailing list for http://amforth.sf.net/
>> Amforth-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/amforth-devel
> 
> 
> ___
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-06-02 Thread Tristan Williams
Hi Michael,

I hope you got AmForth to build successfully under windows for the
atmega2560, but if not, I have built it for my Arduino MEGA using the
most recent source (r2457).

https://sourceforge.net/p/amforth/code/HEAD/tree/trunk/

I have uploaded the resulting hex files to

https://tjnw.co.uk/amforth-bin/

I also loaded marker.frt onto the Arduino MEGA and checked that it
does what it should do (see [1]).

Best wishes,
Tristan

[1] http://amforth.sourceforge.net/TG/recipes/Forget.html

On 24May21 17:57, Michael Picco wrote:
> Hello Martin,
> Thank you for responding!
> In my work directory, which is aptly named 'amforth-6.9', I don't see a copy
> of the template.asm file with "amforth-low.asm" mentioned.  The
> amforth-low.asm file is referenced in the avr8 subdirectory.  Is there
> something I am missing?
> 
> Kind regards,
> Michael
> 
> 
> 
> 
> On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:
> > The crucial file to include for an ATmega is the confusingly named:
> > "amforth-low.asm" which needs to be un-commented in template.asm.
> > 
> > All the code is then in low flash memory apart from the flash burning
> > routine which should be found at NRWW_START_ADDR (0x01f000).
> > 
> > Often, with a new device, you need to burn the fuses "make write-fuse",
> > before flashing (and burning fuses for a second time) with "make
> > install".
> > 
> 
> 
> 
> ___
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-25 Thread Martin Nicholas via Amforth-devel
On Mon, 24 May 2021 17:57:51 -0700
Michael Picco  wrote:

> Hello Martin,
> Thank you for responding!
> In my work directory, which is aptly named 'amforth-6.9', I don't see
> a copy of the template.asm file with "amforth-low.asm" mentioned.
> The amforth-low.asm file is referenced in the avr8 subdirectory.  Is
> there something I am missing?
> 
> Kind regards,
> Michael
> 

The file is here:
appl/template/template.asm

I'm wrong as to where "amforth-low.asm" is included. In a vanilla
system the include is in:
appl/atmega2561/atmega256.asm

There is an atmega256 build in:
appl/atmega2561/

Probably the most suitable Makefile is:
appl/template/makefile
or possibly:
appl/arduino/Makefile

-- 
Regards,

Martin Nicholas.

E-mail: reply-2...@mgn.org.uk (Address will be valid throughout 2021).


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-24 Thread Michael Picco

Hello Martin,
Thank you for responding!
In my work directory, which is aptly named 'amforth-6.9', I don't see a 
copy of the template.asm file with "amforth-low.asm" mentioned.  The 
amforth-low.asm file is referenced in the avr8 subdirectory.  Is there 
something I am missing?


Kind regards,
Michael




On 5/24/2021 10:19 AM, Martin Nicholas via Amforth-devel wrote:

The crucial file to include for an ATmega is the confusingly named:
"amforth-low.asm" which needs to be un-commented in template.asm.

All the code is then in low flash memory apart from the flash burning
routine which should be found at NRWW_START_ADDR (0x01f000).

Often, with a new device, you need to burn the fuses "make write-fuse",
before flashing (and burning fuses for a second time) with "make
install".





___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-24 Thread Martin Nicholas via Amforth-devel


The crucial file to include for an ATmega is the confusingly named:
"amforth-low.asm" which needs to be un-commented in template.asm.

All the code is then in low flash memory apart from the flash burning
routine which should be found at NRWW_START_ADDR (0x01f000).

Often, with a new device, you need to burn the fuses "make write-fuse",
before flashing (and burning fuses for a second time) with "make
install".

-- 
Regards,

Martin Nicholas.

E-mail: reply-2...@mgn.org.uk (Address will be valid throughout 2021).


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-24 Thread Robert Bradley via Amforth-devel
Hello,

Several years ago (Nov 2012), I tried to get amforth running on an Arduine2560. 
After a LOT of pain I succeded. I wrote the following to the board, and it is 
probably somewhere in the archives. Anyway……I do not know if the issues that 
you are experiencing are the same, but it sure sounds familiar…..



here goes:

I've been trying to get amforth running on an ARDUINO MEGA 2560. I've been 
using Atmel
Studio 6, and a avr dragon board to do the programming, AND i have been using 
the atmel
provided device programming tool (not avrdude). I have managed to make it all 
work,
though.

Its a pretty ugly hack. I have been studying amforth, and I *think* that I sorta
understand how it works.

Here in a nut shell is what I ended up doing. If you compile the code and try 
to burn it
into the arduino board, it simply will not work. The Atmel software loads the 
lower code
where it belongs, but then it loads the high code wayy up at $3E000, which 
is exactly
what the code tells it to do. I am not conversant enough with the amforth code 
to know how
to make it work up there, and try as I might, I could not find any reference to 
anybody
who had succeeded in doing so. What I ended up doing was this..

I manually orged the high code to $3800. This will work until you want to 
create a new
word, or write to flash, at which point the code locks up because it cannot 
write to that
section of flash from there. In the core word !i-nrww I put a jump to 
DO_STOREI_atmega. I
put a label on the pop yh statement that follows that. I cut the entire 
DO_STOREI_atmega
section out. at the end of the last piece of high section code, (i think it was 
words), I
put an .org $1f000 and pasted the DO_STOREI_atmega code there. After the rcall 
dospm, I
put a jmp back to the pop yh statement that follows that.

Although that, in fact, would have worked, I didn't realize it because the 
process of
burning the code into the arduino involved burning the flash, then the eeprom.
Unfortunately immediately after the flash is burned, the arduino resets, cannot 
find its
brains in the eeprom, and encounters the relocated !i-nrww code which promptly 
erases a
goodly part of the first page of flash.

The solution I ended up with was to place a simple continuously looping 
assembly led
blinky routine immediately after the .org $1f000, with the !i-nrww code 
immediately after
that.

This works. As far as I can see, it is a normal amforth installation. I can 
create new
words, and so far things seem to work.




> On May 23, 2021, at 7:02 PM, Michael Picco  wrote:
> 
> Thank you for that.
> Reading up on them yields:
> not found ... the position in the input line indicates the system choked on 
> the word 'words'.
> 
> words is part of the flashed system.
> 
> This indicates (to me) that something got corrupted.  I can only wonder if 
> memory got overwritten somehow.  Is there a setting required prior to 
> flashing that I'm failing to set properly?
> 
> Thanks in advance!
> 
> On 5/22/2021 9:51 PM, George Herzog wrote:
>> There are AmForth error codes. Read up on them.
>> 
>> On Sun, May 23, 2021, 12:42 Michael Picco  wrote:
>> 
>>> Hello!
>>> 
>>> I seem to have stumbled across an issue.
>>> 
>>> First code I wrote was to blink the LED onboard.  This worked just fine.
>>> Then I went to add 'marker'.  Entered it line-by-line ... got the 'Ok'
>>> after each line.  After adding the last line (semicolon), the board
>>> froze up.  Did a warm boot and then executed 'words' to see what was
>>> there.  It came back with ?? -13 5.
>>> 
>>> What came to mind is perhaps not enough memory is allocated prior to
>>> flashing and I'm overwriting something I shouldn't.
>>> 
>>> Any ideas?
>>> 
>>> Kind regards,
>>> 
>>> Michael
>>> 
>>> On 5/21/2021 1:28 AM, tristan wrote:
 Hi Michael,
 
 Apologies. My memory is failing me.
 
 The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5
 (PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.
 
 Best wishes,
 Tristan
 
 
 On 2021-05-21 08:54, tristan wrote:
> Hi Michael,
> 
>> I do not see the word 'marker' defined. Should it have been part of
>> the basic system, or do I need to pull it from somewhere?
> It is not part of the basic system, it is defined in this file.
> 
> avr8/lib/forth2012/core-ext/marker.frt
> 
> Using marker is efficient/good practice/etc. but it is not a necessary
> requirement to do below.
> 
>> Then I'd like to see about doing something real simple, like turning
>> an LED on/off.  It's sort of a hardware person's approach to 'Hello
>> World!'  :)
> http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html
> 
> IIRC the MEGA and UNO have the built-in led on the same pin (port bit).
> 
> The definitions for the chip can be found in this file
> 

Re: [Amforth] Newbie with a mega2560

2021-05-24 Thread Mark Roth
Hello. If your High fuse is set to 0xDC that is probably your problem. From
what I see that gives you a 1k boot section and Amforth is probably trying
to blast past that. I have some strange fails when I first flashed my 1284p
chips. Checking with a fuse calculator it looks like that chip should be D9
for a 4k boot section.

Here is a link to the calculator I used.
http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega2560=E0=D9=FC=FF

Hope that is a bit helpful,
Mark

On Mon, May 24, 2021 at 11:47 AM tristan  wrote:

> Hi Michael,
>
> AmForth uses a dictionary to store the words it knows about. When
> AmForth recognises it has received a word over the serial line it tries
> to lookup that word in its dictionary. If it finds the word, it executes
> that word. If it does not, then it reports an error.
>
> In the file marker.frt is the definition for the word marker. This word
> will create a word that will manipulate the dictionary. See this link
> below
>
> http://amforth.sourceforge.net/TG/recipes/Forget.html
>
> Your AmForth system is indeed corrupted (and will need to be
> re-flashed). Why it has become corrupted needs some more investigation.
> Perhaps there is a word that marker relies on that is missing from your
> hex build, perhaps you made a typo when typing in the definition,
> perhaps you have found a bug[a]. I would
>
> 1. Re-flash the board
> 2. Connect over serial, check that word lists the dictionary, define a
> trivial word e.g. : xx 1 + ; and check that it works and can be listed
> in the dictionary.
> 3. Use amforth-shell.py to load avr8/lib/forth2012/core-ext/marker.frt
> 4. Repeat 2.
> 5. Do the example in
> http://amforth.sourceforge.net/TG/recipes/Forget.html
>
> Best wishes,
> Tristan
>
> [a] I use marker very frequently on atmega328p but not on the atmega2560
>
>
>
> On 2021-05-24 00:02, Michael Picco wrote:
> > Thank you for that.
> > Reading up on them yields:
> > not found ... the position in the input line indicates the system
> > choked on the word 'words'.
> >
> > words is part of the flashed system.
> >
> > This indicates (to me) that something got corrupted.  I can only
> > wonder if memory got overwritten somehow.  Is there a setting required
> > prior to flashing that I'm failing to set properly?
> >
> > Thanks in advance!
> >
> > On 5/22/2021 9:51 PM, George Herzog wrote:
> >> There are AmForth error codes. Read up on them.
> >>
> >> On Sun, May 23, 2021, 12:42 Michael Picco 
> >> wrote:
> >>
> >>> Hello!
> >>>
> >>> I seem to have stumbled across an issue.
> >>>
> >>> First code I wrote was to blink the LED onboard.  This worked just
> >>> fine.
> >>> Then I went to add 'marker'.  Entered it line-by-line ... got the
> >>> 'Ok'
> >>> after each line.  After adding the last line (semicolon), the board
> >>> froze up.  Did a warm boot and then executed 'words' to see what was
> >>> there.  It came back with ?? -13 5.
> >>>
> >>> What came to mind is perhaps not enough memory is allocated prior to
> >>> flashing and I'm overwriting something I shouldn't.
> >>>
> >>> Any ideas?
> >>>
> >>> Kind regards,
> >>>
> >>> Michael
> >>>
> >>> On 5/21/2021 1:28 AM, tristan wrote:
>  Hi Michael,
> 
>  Apologies. My memory is failing me.
> 
>  The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5
>  (PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.
> 
>  Best wishes,
>  Tristan
> 
> 
>  On 2021-05-21 08:54, tristan wrote:
> > Hi Michael,
> >
> >> I do not see the word 'marker' defined. Should it have been part
> >> of
> >> the basic system, or do I need to pull it from somewhere?
> > It is not part of the basic system, it is defined in this file.
> >
> > avr8/lib/forth2012/core-ext/marker.frt
> >
> > Using marker is efficient/good practice/etc. but it is not a
> > necessary
> > requirement to do below.
> >
> >> Then I'd like to see about doing something real simple, like
> >> turning
> >> an LED on/off.  It's sort of a hardware person's approach to
> >> 'Hello
> >> World!'  :)
> > http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html
> >
> > IIRC the MEGA and UNO have the built-in led on the same pin (port
> > bit).
> >
> > The definitions for the chip can be found in this file
> >
> > avr8/devices/atmega2560/atmega2560.frt
> >
> > These, or extracts from, will need to be loaded into the basic
> > system.
> > So longer term, being able to load forth definition
> > non-interactively
> > from a file is very useful. There are programs in the tools
> > directory
> > - amforth-shell.py being the one I use.
> >
> >
> > Best wishes,
> > Tristan
> >
> >
> >
> > On 2021-05-21 05:25, Michael Picco wrote:
> >> Hello,
> >>
> >> As mentioned earlier, it's now working.
> >> I do not see the word 'marker' defined.  Should it have been 

Re: [Amforth] Newbie with a mega2560

2021-05-24 Thread tristan

Hi Michael,

AmForth uses a dictionary to store the words it knows about. When 
AmForth recognises it has received a word over the serial line it tries 
to lookup that word in its dictionary. If it finds the word, it executes 
that word. If it does not, then it reports an error.


In the file marker.frt is the definition for the word marker. This word 
will create a word that will manipulate the dictionary. See this link 
below


http://amforth.sourceforge.net/TG/recipes/Forget.html

Your AmForth system is indeed corrupted (and will need to be 
re-flashed). Why it has become corrupted needs some more investigation. 
Perhaps there is a word that marker relies on that is missing from your 
hex build, perhaps you made a typo when typing in the definition,  
perhaps you have found a bug[a]. I would


1. Re-flash the board
2. Connect over serial, check that word lists the dictionary, define a 
trivial word e.g. : xx 1 + ; and check that it works and can be listed 
in the dictionary.

3. Use amforth-shell.py to load avr8/lib/forth2012/core-ext/marker.frt
4. Repeat 2.
5. Do the example in 
http://amforth.sourceforge.net/TG/recipes/Forget.html


Best wishes,
Tristan

[a] I use marker very frequently on atmega328p but not on the atmega2560



On 2021-05-24 00:02, Michael Picco wrote:

Thank you for that.
Reading up on them yields:
not found ... the position in the input line indicates the system
choked on the word 'words'.

words is part of the flashed system.

This indicates (to me) that something got corrupted.  I can only
wonder if memory got overwritten somehow.  Is there a setting required
prior to flashing that I'm failing to set properly?

Thanks in advance!

On 5/22/2021 9:51 PM, George Herzog wrote:

There are AmForth error codes. Read up on them.

On Sun, May 23, 2021, 12:42 Michael Picco  
wrote:



Hello!

I seem to have stumbled across an issue.

First code I wrote was to blink the LED onboard.  This worked just 
fine.
Then I went to add 'marker'.  Entered it line-by-line ... got the 
'Ok'

after each line.  After adding the last line (semicolon), the board
froze up.  Did a warm boot and then executed 'words' to see what was
there.  It came back with ?? -13 5.

What came to mind is perhaps not enough memory is allocated prior to
flashing and I'm overwriting something I shouldn't.

Any ideas?

Kind regards,

Michael

On 5/21/2021 1:28 AM, tristan wrote:

Hi Michael,

Apologies. My memory is failing me.

The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5
(PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.

Best wishes,
Tristan


On 2021-05-21 08:54, tristan wrote:

Hi Michael,

I do not see the word 'marker' defined. Should it have been part 
of

the basic system, or do I need to pull it from somewhere?

It is not part of the basic system, it is defined in this file.

avr8/lib/forth2012/core-ext/marker.frt

Using marker is efficient/good practice/etc. but it is not a 
necessary

requirement to do below.

Then I'd like to see about doing something real simple, like 
turning
an LED on/off.  It's sort of a hardware person's approach to 
'Hello

World!'  :)

http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html

IIRC the MEGA and UNO have the built-in led on the same pin (port 
bit).


The definitions for the chip can be found in this file

avr8/devices/atmega2560/atmega2560.frt

These, or extracts from, will need to be loaded into the basic 
system.
So longer term, being able to load forth definition 
non-interactively
from a file is very useful. There are programs in the tools 
directory

- amforth-shell.py being the one I use.


Best wishes,
Tristan



On 2021-05-21 05:25, Michael Picco wrote:

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part 
of

the basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like 
turning
an LED on/off.  It's sort of a hardware person's approach to 
'Hello

World!'  :)

Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe

Also needed in the work directory isatmega256.asm and 
m2560def.inc


The image of the directory structure didn't post to the list, so
I'm showing it below (my work directory is called
"amforth-ATmega2560-6.9":

-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing 

Re: [Amforth] Newbie with a mega2560

2021-05-23 Thread Michael Picco

Thank you for that.
Reading up on them yields:
not found ... the position in the input line indicates the system choked 
on the word 'words'.


words is part of the flashed system.

This indicates (to me) that something got corrupted.  I can only wonder 
if memory got overwritten somehow.  Is there a setting required prior to 
flashing that I'm failing to set properly?


Thanks in advance!

On 5/22/2021 9:51 PM, George Herzog wrote:

There are AmForth error codes. Read up on them.

On Sun, May 23, 2021, 12:42 Michael Picco  wrote:


Hello!

I seem to have stumbled across an issue.

First code I wrote was to blink the LED onboard.  This worked just fine.
Then I went to add 'marker'.  Entered it line-by-line ... got the 'Ok'
after each line.  After adding the last line (semicolon), the board
froze up.  Did a warm boot and then executed 'words' to see what was
there.  It came back with ?? -13 5.

What came to mind is perhaps not enough memory is allocated prior to
flashing and I'm overwriting something I shouldn't.

Any ideas?

Kind regards,

Michael

On 5/21/2021 1:28 AM, tristan wrote:

Hi Michael,

Apologies. My memory is failing me.

The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5
(PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.

Best wishes,
Tristan


On 2021-05-21 08:54, tristan wrote:

Hi Michael,


I do not see the word 'marker' defined. Should it have been part of
the basic system, or do I need to pull it from somewhere?

It is not part of the basic system, it is defined in this file.

avr8/lib/forth2012/core-ext/marker.frt

Using marker is efficient/good practice/etc. but it is not a necessary
requirement to do below.


Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)

http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html

IIRC the MEGA and UNO have the built-in led on the same pin (port bit).

The definitions for the chip can be found in this file

avr8/devices/atmega2560/atmega2560.frt

These, or extracts from, will need to be loaded into the basic system.
So longer term, being able to load forth definition non-interactively
from a file is very useful. There are programs in the tools directory
- amforth-shell.py being the one I use.


Best wishes,
Tristan



On 2021-05-21 05:25, Michael Picco wrote:

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)

Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe

Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so
I'm showing it below (my work directory is called
"amforth-ATmega2560-6.9":

-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the
2560 were corrupted!
I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o
atmega2560.hex -e atmega2560.eep -l atmega2560.lst -I
g:\amforth-atmega2560\common -I g:\amforth-atmega2560\avr8 -I
g:\amforth-atmega2560\avr8\drivers -I include -v0 atmega256.asm

This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash
and EEPROM; programmed the .hex and .eep files.

Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a
mega2560 is reasonably straightforward, however, I don't use
Microchip Studio version 7 or win10 so I can't help with this
tool set. I hope you able to translate the macos/linux to your
tools - and if so a write-up would be very welcome!

As pointed out you need a programmer (such as usbtiny, usbasp,
avrisp2 etc.) and a program to talk to the programmer (such as
avrdude).

Both atmega2560.hex and atmega2560.eep.hex need to be written to
the mega2560's flash/eeprom. 

Re: [Amforth] Newbie with a mega2560

2021-05-22 Thread George Herzog
There are AmForth error codes. Read up on them.

On Sun, May 23, 2021, 12:42 Michael Picco  wrote:

> Hello!
>
> I seem to have stumbled across an issue.
>
> First code I wrote was to blink the LED onboard.  This worked just fine.
> Then I went to add 'marker'.  Entered it line-by-line ... got the 'Ok'
> after each line.  After adding the last line (semicolon), the board
> froze up.  Did a warm boot and then executed 'words' to see what was
> there.  It came back with ?? -13 5.
>
> What came to mind is perhaps not enough memory is allocated prior to
> flashing and I'm overwriting something I shouldn't.
>
> Any ideas?
>
> Kind regards,
>
> Michael
>
> On 5/21/2021 1:28 AM, tristan wrote:
> > Hi Michael,
> >
> > Apologies. My memory is failing me.
> >
> > The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5
> > (PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.
> >
> > Best wishes,
> > Tristan
> >
> >
> > On 2021-05-21 08:54, tristan wrote:
> >> Hi Michael,
> >>
> >>> I do not see the word 'marker' defined. Should it have been part of
> >>> the basic system, or do I need to pull it from somewhere?
> >>
> >> It is not part of the basic system, it is defined in this file.
> >>
> >> avr8/lib/forth2012/core-ext/marker.frt
> >>
> >> Using marker is efficient/good practice/etc. but it is not a necessary
> >> requirement to do below.
> >>
> >>> Then I'd like to see about doing something real simple, like turning
> >>> an LED on/off.  It's sort of a hardware person's approach to 'Hello
> >>> World!'  :)
> >>
> >> http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html
> >>
> >> IIRC the MEGA and UNO have the built-in led on the same pin (port bit).
> >>
> >> The definitions for the chip can be found in this file
> >>
> >> avr8/devices/atmega2560/atmega2560.frt
> >>
> >> These, or extracts from, will need to be loaded into the basic system.
> >> So longer term, being able to load forth definition non-interactively
> >> from a file is very useful. There are programs in the tools directory
> >> - amforth-shell.py being the one I use.
> >>
> >>
> >> Best wishes,
> >> Tristan
> >>
> >>
> >>
> >> On 2021-05-21 05:25, Michael Picco wrote:
> >>> Hello,
> >>>
> >>> As mentioned earlier, it's now working.
> >>> I do not see the word 'marker' defined.  Should it have been part of
> >>> the basic system, or do I need to pull it from somewhere?
> >>> Then I'd like to see about doing something real simple, like turning
> >>> an LED on/off.  It's sort of a hardware person's approach to 'Hello
> >>> World!'  :)
> >>>
> >>> Kind regards,
> >>>
> >>> Michael
> >>> K6MLE
> >>>
> >>>
> >>> On 5/20/2021 12:41 PM, Michael Picco wrote:
>  I should add the following changes to Craig Lindley's write-up:
> 
>  Step 3:
>  Under Win10, the correct file location for avrasm2.exe will be:
>  c:\Program
>  Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe
> 
>  Also needed in the work directory isatmega256.asm and m2560def.inc
> 
>  The image of the directory structure didn't post to the list, so
>  I'm showing it below (my work directory is called
>  "amforth-ATmega2560-6.9":
> 
>  -- appl
>  -- arm
>  -- avr8
>  -- common
>  -- doc
>  -- examples
>  -- msp430
>  -- risc-v
>  -- shared
>  -- tests
>  -- tools
>  -- words
>  atmega256.asm
>  avrasm2.exe
>  device.asm (for the 2560)
>  device.inc (for the 2560)
>  dict_appl.inc
>  dict_appl_core.inc
>  LICENSE.txt
>  m2560def.inc
>  make.bat
>  readme.txt
>  uno.asm
> 
>  Hope this helps!
> 
>  Kind regards,
> 
>  Michael
>  K6MLE
> 
> 
>  On 5/20/2021 11:56 AM, Michael Picco wrote:
> > Hello All!
> >
> > I have finally had success!
> > It turns out that the .eep and .hex files I was flashing into the
> > 2560 were corrupted!
> > I followed Craig Lindley's write-up with modifications for the 2560.
> > Changed the make.bat file to read: avrasm2.exe -fI -o
> > atmega2560.hex -e atmega2560.eep -l atmega2560.lst -I
> > g:\amforth-atmega2560\common -I g:\amforth-atmega2560\avr8 -I
> > g:\amforth-atmega2560\avr8\drivers -I include -v0 atmega256.asm
> >
> > This is the resulting file structure prior to executing make.bat:
> >
> > The fuse setting in Studio 7 were set as follows:
> > E: 0xFF, H: 0xDC, L:0xFF
> >
> > Programmed the fuses; set the new files up in Studio 7 for flash
> > and EEPROM; programmed the .hex and .eep files.
> >
> > Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!
> >
> > I'm hoping this exercise might help others.
> >
> > Kind regards,
> >
> > Michael
> > K6MLE
> >
> > On 5/18/2021 8:51 AM, tristan wrote:
> >> Hello Michael,
> >>
> >> Getting AmForth up and running from archive hex files on a
> >> mega2560 is 

Re: [Amforth] Newbie with a mega2560

2021-05-22 Thread Michael Picco

Hello!

I seem to have stumbled across an issue.

First code I wrote was to blink the LED onboard.  This worked just fine.
Then I went to add 'marker'.  Entered it line-by-line ... got the 'Ok' 
after each line.  After adding the last line (semicolon), the board 
froze up.  Did a warm boot and then executed 'words' to see what was 
there.  It came back with ?? -13 5.


What came to mind is perhaps not enough memory is allocated prior to 
flashing and I'm overwriting something I shouldn't.


Any ideas?

Kind regards,

Michael

On 5/21/2021 1:28 AM, tristan wrote:

Hi Michael,

Apologies. My memory is failing me.

The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5 
(PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.


Best wishes,
Tristan


On 2021-05-21 08:54, tristan wrote:

Hi Michael,


I do not see the word 'marker' defined. Should it have been part of
the basic system, or do I need to pull it from somewhere?


It is not part of the basic system, it is defined in this file.

avr8/lib/forth2012/core-ext/marker.frt

Using marker is efficient/good practice/etc. but it is not a necessary
requirement to do below.


Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)


http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html

IIRC the MEGA and UNO have the built-in led on the same pin (port bit).

The definitions for the chip can be found in this file

avr8/devices/atmega2560/atmega2560.frt

These, or extracts from, will need to be loaded into the basic system.
So longer term, being able to load forth definition non-interactively
from a file is very useful. There are programs in the tools directory
- amforth-shell.py being the one I use.


Best wishes,
Tristan



On 2021-05-21 05:25, Michael Picco wrote:

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)

Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program 
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe


Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so 
I'm showing it below (my work directory is called 
"amforth-ATmega2560-6.9":


-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 
2560 were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o 
atmega2560.hex -e atmega2560.eep -l atmega2560.lst -I 
g:\amforth-atmega2560\common -I g:\amforth-atmega2560\avr8 -I 
g:\amforth-atmega2560\avr8\drivers -I include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash 
and EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a 
mega2560 is reasonably straightforward, however, I don't use 
Microchip Studio version 7 or win10 so I can't help with this 
tool set. I hope you able to translate the macos/linux to your 
tools - and if so a write-up would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, 
avrisp2 etc.) and a program to talk to the programmer (such as 
avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to 
the mega2560's flash/eeprom. Below are the command lines I use 
with avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you 
wish to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been 

Re: [Amforth] Newbie with a mega2560

2021-05-21 Thread tristan

Hi Michael,

Apologies. My memory is failing me.

The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5 (PORTB 
bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA.


Best wishes,
Tristan


On 2021-05-21 08:54, tristan wrote:

Hi Michael,


I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?


It is not part of the basic system, it is defined in this file.

avr8/lib/forth2012/core-ext/marker.frt

Using marker is efficient/good practice/etc. but it is not a necessary
requirement to do below.


Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)


http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html

IIRC the MEGA and UNO have the built-in led on the same pin (port bit).

The definitions for the chip can be found in this file

avr8/devices/atmega2560/atmega2560.frt

These, or extracts from, will need to be loaded into the basic system.
So longer term, being able to load forth definition non-interactively
from a file is very useful. There are programs in the tools directory
- amforth-shell.py being the one I use.


Best wishes,
Tristan



On 2021-05-21 05:25, Michael Picco wrote:

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)

Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program 
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe


Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so I'm 
showing it below (my work directory is called 
"amforth-ATmega2560-6.9":


-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 
2560 were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex 
-e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common 
-I g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers 
-I include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash and 
EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 
is reasonably straightforward, however, I don't use Microchip 
Studio version 7 or win10 so I can't help with this tool set. I 
hope you able to translate the macos/linux to your tools - and if 
so a write-up would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, 
avrisp2 etc.) and a program to talk to the programmer (such as 
avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to 
the mega2560's flash/eeprom. Below are the command lines I use with 
avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you 
wish to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to 
the mega2560 over serial using 38400 8N1. I use minicom and 
amforth-shell.py You will need to identify the name of the serial 
device created by the USB to SERIAL chip on your board/setup to use 
any serial program.


Once connected you have the AmForth interpreter prompt and can 
interact, compile new words, and generally use the system. However, 
AmForth is modular and not all functionality is contained in the 
flashed hex files. For I2C and SPI new words need to be defined. 
These definitions are already available within 

Re: [Amforth] Newbie with a mega2560

2021-05-21 Thread tristan

Hi Michael,


I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?


It is not part of the basic system, it is defined in this file.

avr8/lib/forth2012/core-ext/marker.frt

Using marker is efficient/good practice/etc. but it is not a necessary 
requirement to do below.



Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)


http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.html

IIRC the MEGA and UNO have the built-in led on the same pin (port bit).

The definitions for the chip can be found in this file

avr8/devices/atmega2560/atmega2560.frt

These, or extracts from, will need to be loaded into the basic system. 
So longer term, being able to load forth definition non-interactively 
from a file is very useful. There are programs in the tools directory - 
amforth-shell.py being the one I use.



Best wishes,
Tristan



On 2021-05-21 05:25, Michael Picco wrote:

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part of
the basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like turning
an LED on/off.  It's sort of a hardware person's approach to 'Hello
World!'  :)

Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program 
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe


Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so I'm 
showing it below (my work directory is called 
"amforth-ATmega2560-6.9":


-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 
2560 were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex 
-e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common 
-I g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers 
-I include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash and 
EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 
is reasonably straightforward, however, I don't use Microchip Studio 
version 7 or win10 so I can't help with this tool set. I hope you 
able to translate the macos/linux to your tools - and if so a 
write-up would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, 
avrisp2 etc.) and a program to talk to the programmer (such as 
avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to the 
mega2560's flash/eeprom. Below are the command lines I use with 
avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you 
wish to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to 
the mega2560 over serial using 38400 8N1. I use minicom and 
amforth-shell.py You will need to identify the name of the serial 
device created by the USB to SERIAL chip on your board/setup to use 
any serial program.


Once connected you have the AmForth interpreter prompt and can 
interact, compile new words, and generally use the system. However, 
AmForth is modular and not all functionality is contained in the 
flashed hex files. For I2C and SPI new words need to be defined. 
These definitions are already available within the archive, but need 
to be loaded onto a "new" AmForth system. I find amforth-shell.py 
very helpful for automating this process.


The cookbook is a great place to see examples of how things can be 
done



Re: [Amforth] Newbie with a mega2560

2021-05-20 Thread George Herzog
Thanks, knowing what it takes for a successful installation is a valuable
contribution to AmForth users.

The ATmega2560 is very appealing as the added i/o ports make it much more
versatile than the ATmega328p.

On Fri, May 21, 2021 at 3:42 AM Michael Picco  wrote:

> I should add the following changes to Craig Lindley's write-up:
>
> Step 3:
> Under Win10, the correct file location for avrasm2.exe will be:
> c:\Program
> Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe
>
> Also needed in the work directory isatmega256.asm and m2560def.inc
>
> The image of the directory structure didn't post to the list, so I'm
> showing it below (my work directory is called "amforth-ATmega2560-6.9":
>
> -- appl
> -- arm
> -- avr8
> -- common
> -- doc
> -- examples
> -- msp430
> -- risc-v
> -- shared
> -- tests
> -- tools
> -- words
> atmega256.asm
> avrasm2.exe
> device.asm (for the 2560)
> device.inc (for the 2560)
> dict_appl.inc
> dict_appl_core.inc
> LICENSE.txt
> m2560def.inc
> make.bat
> readme.txt
> uno.asm
>
> Hope this helps!
>
> Kind regards,
>
> Michael
> K6MLE
>
>
> On 5/20/2021 11:56 AM, Michael Picco wrote:
> > Hello All!
> >
> > I have finally had success!
> > It turns out that the .eep and .hex files I was flashing into the 2560
> > were corrupted!
> > I followed Craig Lindley's write-up with modifications for the 2560.
> > Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex
> > -e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common -I
> > g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers -I
> > include -v0 atmega256.asm
> >
> > This is the resulting file structure prior to executing make.bat:
> >
> > The fuse setting in Studio 7 were set as follows:
> > E: 0xFF, H: 0xDC, L:0xFF
> >
> > Programmed the fuses; set the new files up in Studio 7 for flash and
> > EEPROM; programmed the .hex and .eep files.
> >
> > Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!
> >
> > I'm hoping this exercise might help others.
> >
> > Kind regards,
> >
> > Michael
> > K6MLE
> >
> > On 5/18/2021 8:51 AM, tristan wrote:
> >> Hello Michael,
> >>
> >> Getting AmForth up and running from archive hex files on a mega2560
> >> is reasonably straightforward, however, I don't use Microchip Studio
> >> version 7 or win10 so I can't help with this tool set. I hope you
> >> able to translate the macos/linux to your tools - and if so a
> >> write-up would be very welcome!
> >>
> >> As pointed out you need a programmer (such as usbtiny, usbasp,
> >> avrisp2 etc.) and a program to talk to the programmer (such as avrdude).
> >>
> >> Both atmega2560.hex and atmega2560.eep.hex need to be written to the
> >> mega2560's flash/eeprom. Below are the command lines I use with avrdude
> >>
> >> avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
> >> avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i
> >>
> >> Flashing these file will overwrite any existing bootloader. It is
> >> worth considering whether you are able to reverse this should you
> >> wish to, before flashing the above files.
> >>
> >> If your mega2560 is an Arduino style board, and the default fuses
> >> unchanged, then IIRC there is no need to reprogram the fuses.
> >>
> >> Once the files have been flashed, you should be able to connect to
> >> the mega2560 over serial using 38400 8N1. I use minicom and
> >> amforth-shell.py You will need to identify the name of the serial
> >> device created by the USB to SERIAL chip on your board/setup to use
> >> any serial program.
> >>
> >> Once connected you have the AmForth interpreter prompt and can
> >> interact, compile new words, and generally use the system. However,
> >> AmForth is modular and not all functionality is contained in the
> >> flashed hex files. For I2C and SPI new words need to be defined.
> >> These definitions are already available within the archive, but need
> >> to be loaded onto a "new" AmForth system. I find amforth-shell.py
> >> very helpful for automating this process.
> >>
> >> The cookbook is a great place to see examples of how things can be done
> >>
> >> http://amforth.sourceforge.net/TG/Cookbook.html
> >>
> >> And for I2C, below is very helpful
> >>
> >> http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html
> >>
> >> Let us know how you get on.
> >>
> >>
> >> Best wishes,
> >> Tristan
> >>
> >>
> >>
> >> On 2021-05-18 14:31, BK Navarette wrote:
> >>> Be careful, the fuse settings particularly the boot size is different
> >>> for flash forth vs amforth.
> >>>
> >>> Brian
> >>>
> >>> On 5/18/21 5:30 AM, PETREMANN Marc wrote:
>  Hello,
>  I have not used Amforth
>  But the installation mechanisms are the same as for FlashForth:
> 
> https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth
> 
>  once FORTH is installed, you must write the programs in FORTH
>  language and
>  have them compile by FORTH on the ARDUINO card.
>  FORTH is an interpreter and a 

Re: [Amforth] Newbie with a mega2560

2021-05-20 Thread Michael Picco

Hello,

As mentioned earlier, it's now working.
I do not see the word 'marker' defined.  Should it have been part of the 
basic system, or do I need to pull it from somewhere?
Then I'd like to see about doing something real simple, like turning an 
LED on/off.  It's sort of a hardware person's approach to 'Hello World!'  :)


Kind regards,

Michael
K6MLE


On 5/20/2021 12:41 PM, Michael Picco wrote:

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program 
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe


Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so I'm 
showing it below (my work directory is called "amforth-ATmega2560-6.9":


-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 
2560 were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex 
-e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common 
-I g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers 
-I include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash and 
EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 
is reasonably straightforward, however, I don't use Microchip Studio 
version 7 or win10 so I can't help with this tool set. I hope you 
able to translate the macos/linux to your tools - and if so a 
write-up would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, 
avrisp2 etc.) and a program to talk to the programmer (such as 
avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to the 
mega2560's flash/eeprom. Below are the command lines I use with avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you 
wish to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to 
the mega2560 over serial using 38400 8N1. I use minicom and 
amforth-shell.py You will need to identify the name of the serial 
device created by the USB to SERIAL chip on your board/setup to use 
any serial program.


Once connected you have the AmForth interpreter prompt and can 
interact, compile new words, and generally use the system. However, 
AmForth is modular and not all functionality is contained in the 
flashed hex files. For I2C and SPI new words need to be defined. 
These definitions are already available within the archive, but need 
to be loaded onto a "new" AmForth system. I find amforth-shell.py 
very helpful for automating this process.


The cookbook is a great place to see examples of how things can be done

http://amforth.sourceforge.net/TG/Cookbook.html

And for I2C, below is very helpful

http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html

Let us know how you get on.


Best wishes,
Tristan



On 2021-05-18 14:31, BK Navarette wrote:

Be careful, the fuse settings particularly the boot size is different
for flash forth vs amforth.

Brian

On 5/18/21 5:30 AM, PETREMANN Marc wrote:

Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth 

once FORTH is installed, you must write the programs in FORTH 
language and

have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm 

Unless I'm mistaken, you need an MKII programmer, because you can 
only

inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  
a écrit :




Re: [Amforth] Newbie with a mega2560

2021-05-20 Thread Michael Picco

I should add the following changes to Craig Lindley's write-up:

Step 3:
Under Win10, the correct file location for avrasm2.exe will be:
c:\Program 
Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe


Also needed in the work directory isatmega256.asm and m2560def.inc

The image of the directory structure didn't post to the list, so I'm 
showing it below (my work directory is called "amforth-ATmega2560-6.9":


-- appl
-- arm
-- avr8
-- common
-- doc
-- examples
-- msp430
-- risc-v
-- shared
-- tests
-- tools
-- words
atmega256.asm
avrasm2.exe
device.asm (for the 2560)
device.inc (for the 2560)
dict_appl.inc
dict_appl_core.inc
LICENSE.txt
m2560def.inc
make.bat
readme.txt
uno.asm

Hope this helps!

Kind regards,

Michael
K6MLE


On 5/20/2021 11:56 AM, Michael Picco wrote:

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 2560 
were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex 
-e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common -I 
g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers -I 
include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash and 
EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 
is reasonably straightforward, however, I don't use Microchip Studio 
version 7 or win10 so I can't help with this tool set. I hope you 
able to translate the macos/linux to your tools - and if so a 
write-up would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, 
avrisp2 etc.) and a program to talk to the programmer (such as avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to the 
mega2560's flash/eeprom. Below are the command lines I use with avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you 
wish to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to 
the mega2560 over serial using 38400 8N1. I use minicom and 
amforth-shell.py You will need to identify the name of the serial 
device created by the USB to SERIAL chip on your board/setup to use 
any serial program.


Once connected you have the AmForth interpreter prompt and can 
interact, compile new words, and generally use the system. However, 
AmForth is modular and not all functionality is contained in the 
flashed hex files. For I2C and SPI new words need to be defined. 
These definitions are already available within the archive, but need 
to be loaded onto a "new" AmForth system. I find amforth-shell.py 
very helpful for automating this process.


The cookbook is a great place to see examples of how things can be done

http://amforth.sourceforge.net/TG/Cookbook.html

And for I2C, below is very helpful

http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html

Let us know how you get on.


Best wishes,
Tristan



On 2021-05-18 14:31, BK Navarette wrote:

Be careful, the fuse settings particularly the boot size is different
for flash forth vs amforth.

Brian

On 5/18/21 5:30 AM, PETREMANN Marc wrote:

Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth 

once FORTH is installed, you must write the programs in FORTH 
language and

have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm 


Unless I'm mistaken, you need an MKII programmer, because you can only
inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  
a écrit :



Hello,

I am attempting to use the mega2560 as a nicely featured development
platform for AmForth-6.9.  The machine I'm using is a Win10 box, with
Microchip Studio version 7 installed.

In the zip file, under appl/atmega2561, I notice atmega256.eep.hex 
and

atmega256.hex.  The eep.hex file doesn't seem to get recognized by
Studio 7.  Do I need to rename it to just a ".eep" file?

Can I start building 

Re: [Amforth] Newbie with a mega2560

2021-05-20 Thread Michael Picco

Hello All!

I have finally had success!
It turns out that the .eep and .hex files I was flashing into the 2560 
were corrupted!

I followed Craig Lindley's write-up with modifications for the 2560.
Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex -e 
atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common -I 
g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers -I 
include -v0 atmega256.asm


This is the resulting file structure prior to executing make.bat:

The fuse setting in Studio 7 were set as follows:
E: 0xFF, H: 0xDC, L:0xFF

Programmed the fuses; set the new files up in Studio 7 for flash and 
EEPROM; programmed the .hex and .eep files.


Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!!

I'm hoping this exercise might help others.

Kind regards,

Michael
K6MLE

On 5/18/2021 8:51 AM, tristan wrote:

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 is 
reasonably straightforward, however, I don't use Microchip Studio 
version 7 or win10 so I can't help with this tool set. I hope you able 
to translate the macos/linux to your tools - and if so a write-up 
would be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, avrisp2 
etc.) and a program to talk to the programmer (such as avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to the 
mega2560's flash/eeprom. Below are the command lines I use with avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is 
worth considering whether you are able to reverse this should you wish 
to, before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to the 
mega2560 over serial using 38400 8N1. I use minicom and 
amforth-shell.py You will need to identify the name of the serial 
device created by the USB to SERIAL chip on your board/setup to use 
any serial program.


Once connected you have the AmForth interpreter prompt and can 
interact, compile new words, and generally use the system. However, 
AmForth is modular and not all functionality is contained in the 
flashed hex files. For I2C and SPI new words need to be defined. These 
definitions are already available within the archive, but need to be 
loaded onto a "new" AmForth system. I find amforth-shell.py very 
helpful for automating this process.


The cookbook is a great place to see examples of how things can be done

http://amforth.sourceforge.net/TG/Cookbook.html

And for I2C, below is very helpful

http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html

Let us know how you get on.


Best wishes,
Tristan



On 2021-05-18 14:31, BK Navarette wrote:

Be careful, the fuse settings particularly the boot size is different
for flash forth vs amforth.

Brian

On 5/18/21 5:30 AM, PETREMANN Marc wrote:

Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth 

once FORTH is installed, you must write the programs in FORTH 
language and

have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm 


Unless I'm mistaken, you need an MKII programmer, because you can only
inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  a 
écrit :



Hello,

I am attempting to use the mega2560 as a nicely featured development
platform for AmForth-6.9.  The machine I'm using is a Win10 box, with
Microchip Studio version 7 installed.

In the zip file, under appl/atmega2561, I notice atmega256.eep.hex and
atmega256.hex.  The eep.hex file doesn't seem to get recognized by
Studio 7.  Do I need to rename it to just a ".eep" file?

Can I start building the platform by flashing these files into the
board?  If so, what is the process to add functionality (I2C, SPI,
etc.)?  As a total newbie!

If it's necessary to recompile and create new hex files, the 
process is

unclear.  Is it spelled out somewhere such that a beginner can follow
some basic steps to make the proper file(s)?

It is my understanding that both flash and EEPROM need to be written,
along with the fuses, [E:0xFF, H: 0xDC, L:0xFF].  Do I have these 
correct?


Once I get this figured out, I'd like to submit a write-up for newbies
and perhaps draw more users into AmForth.  How might I get this 
posted,

when completed?

Thank you in advance!

Kind regards,

Michael



___
Amforth-devel mailing list for http://amforth.sf.net/

Re: [Amforth] Newbie with a mega2560

2021-05-18 Thread Erich Wälde
Hello Michael,

welcome to the club!

Michael Picco  writes:

> Hello,
>
> I am attempting to use the mega2560 as a nicely featured development platform
> for AmForth-6.9.  The machine I'm using is a Win10 box, with Microchip Studio
> version 7 installed.
>
> In the zip file, under appl/atmega2561, I notice atmega256.eep.hex and
> atmega256.hex.  The eep.hex file doesn't seem to get recognized by 
> Studio 7.  Do I need to rename it to just a ".eep" file?

you write mega25_60_ and refer to mega25_61_ typo? Or are they
reasonably the same???

>
> Can I start building the platform by flashing these files into the board?  If
> so, what is the process to add functionality (I2C, SPI, etc.)?  As a total
> newbie!
>
> If it's necessary to recompile and create new hex files, the process is
> unclear.  Is it spelled out somewhere such that a beginner can follow 
> some basic steps to make the proper file(s)?
>
> It is my understanding that both flash and EEPROM need to be written, along
> with the fuses, [E:0xFF, H: 0xDC, L:0xFF].  Do I have these
> correct?

Fuses are a bit tricky. You can sort of brick your device. It
will not talk to you any more, and ways out are with varying
tricks ... So be careful.

I do not have a 2560. If I had to use one, I would hunt down the
data sheet and read the section about the fuses. And this is
plenty confusing stuff. Try to translate the above settings into
words. Bit by bit. There is also a "fuse calculator" somewhere
online ...
http://eleccelerator.com/fusecalc/

There is even an Android App for this LOL!
https://play.google.com/store/apps/details?id=me.chayan.avrfusecalculator=en_US=US


Again: Do not brick your only one device! If you can possibly
help it :-) I have done this. So you don't have to, right?


> Once I get this figured out, I'd like to submit a write-up for newbies and
> perhaps draw more users into AmForth. 

There is some document about your setup ... vom Karl maybe ...

http://amforth.sourceforge.net/UG/amforth_user.html
http://amforth.sourceforge.net/UG/windows.html

I have no idea how useful this is today. But feel free to update
this document.


> How might I get this posted, when
> completed?
just send it to this list. I'm working on migrating to git.
see https://git.sr.ht/~amforth/
for starters.

Cheers,
Erich



-- 
May the Forth be with you ...

___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-18 Thread tristan

Hello Michael,

Getting AmForth up and running from archive hex files on a mega2560 is 
reasonably straightforward, however, I don't use Microchip Studio 
version 7 or win10 so I can't help with this tool set. I hope you able 
to translate the macos/linux to your tools - and if so a write-up would 
be very welcome!


As pointed out you need a programmer (such as usbtiny, usbasp, avrisp2 
etc.) and a program to talk to the programmer (such as avrdude).


Both atmega2560.hex and atmega2560.eep.hex need to be written to the 
mega2560's flash/eeprom. Below are the command lines I use with avrdude


avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i
avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:i

Flashing these file will overwrite any existing bootloader. It is worth 
considering whether you are able to reverse this should you wish to, 
before flashing the above files.


If your mega2560 is an Arduino style board, and the default fuses 
unchanged, then IIRC there is no need to reprogram the fuses.


Once the files have been flashed, you should be able to connect to the 
mega2560 over serial using 38400 8N1. I use minicom and amforth-shell.py 
You will need to identify the name of the serial device created by the 
USB to SERIAL chip on your board/setup to use any serial program.


Once connected you have the AmForth interpreter prompt and can interact, 
compile new words, and generally use the system. However, AmForth is 
modular and not all functionality is contained in the flashed hex files. 
For I2C and SPI new words need to be defined. These definitions are 
already available within the archive, but need to be loaded onto a "new" 
AmForth system. I find amforth-shell.py very helpful for automating this 
process.


The cookbook is a great place to see examples of how things can be done

http://amforth.sourceforge.net/TG/Cookbook.html

And for I2C, below is very helpful

http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html

Let us know how you get on.


Best wishes,
Tristan



On 2021-05-18 14:31, BK Navarette wrote:

Be careful, the fuse settings particularly the boot size is different
for flash forth vs amforth.

Brian

On 5/18/21 5:30 AM, PETREMANN Marc wrote:

Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth
once FORTH is installed, you must write the programs in FORTH language 
and

have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm
Unless I'm mistaken, you need an MKII programmer, because you can only
inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  a 
écrit :



Hello,

I am attempting to use the mega2560 as a nicely featured development
platform for AmForth-6.9.  The machine I'm using is a Win10 box, with
Microchip Studio version 7 installed.

In the zip file, under appl/atmega2561, I notice atmega256.eep.hex 
and

atmega256.hex.  The eep.hex file doesn't seem to get recognized by
Studio 7.  Do I need to rename it to just a ".eep" file?

Can I start building the platform by flashing these files into the
board?  If so, what is the process to add functionality (I2C, SPI,
etc.)?  As a total newbie!

If it's necessary to recompile and create new hex files, the process 
is

unclear.  Is it spelled out somewhere such that a beginner can follow
some basic steps to make the proper file(s)?

It is my understanding that both flash and EEPROM need to be written,
along with the fuses, [E:0xFF, H: 0xDC, L:0xFF].  Do I have these 
correct?


Once I get this figured out, I'd like to submit a write-up for 
newbies
and perhaps draw more users into AmForth.  How might I get this 
posted,

when completed?

Thank you in advance!

Kind regards,

Michael



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-18 Thread BK Navarette
Be careful, the fuse settings particularly the boot size is different 
for flash forth vs amforth.


Brian

On 5/18/21 5:30 AM, PETREMANN Marc wrote:

Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth
once FORTH is installed, you must write the programs in FORTH language and
have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm
Unless I'm mistaken, you need an MKII programmer, because you can only
inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  a écrit :


Hello,

I am attempting to use the mega2560 as a nicely featured development
platform for AmForth-6.9.  The machine I'm using is a Win10 box, with
Microchip Studio version 7 installed.

In the zip file, under appl/atmega2561, I notice atmega256.eep.hex and
atmega256.hex.  The eep.hex file doesn't seem to get recognized by
Studio 7.  Do I need to rename it to just a ".eep" file?

Can I start building the platform by flashing these files into the
board?  If so, what is the process to add functionality (I2C, SPI,
etc.)?  As a total newbie!

If it's necessary to recompile and create new hex files, the process is
unclear.  Is it spelled out somewhere such that a beginner can follow
some basic steps to make the proper file(s)?

It is my understanding that both flash and EEPROM need to be written,
along with the fuses, [E:0xFF, H: 0xDC, L:0xFF].  Do I have these correct?

Once I get this figured out, I'd like to submit a write-up for newbies
and perhaps draw more users into AmForth.  How might I get this posted,
when completed?

Thank you in advance!

Kind regards,

Michael



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel



___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel


Re: [Amforth] Newbie with a mega2560

2021-05-18 Thread PETREMANN Marc
Hello,
I have not used Amforth
But the installation mechanisms are the same as for FlashForth:
https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForth
once FORTH is installed, you must write the programs in FORTH language and
have them compile by FORTH on the ARDUINO card.
FORTH is an interpreter and a compiler. We communicate with FORTH via
terminal software:
https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTerm
Unless I'm mistaken, you need an MKII programmer, because you can only
inject a .HEX file through this device. This operation overwrites the
original bootloader.
BR

Le mar. 18 mai 2021 à 06:08, Michael Picco  a écrit :

> Hello,
>
> I am attempting to use the mega2560 as a nicely featured development
> platform for AmForth-6.9.  The machine I'm using is a Win10 box, with
> Microchip Studio version 7 installed.
>
> In the zip file, under appl/atmega2561, I notice atmega256.eep.hex and
> atmega256.hex.  The eep.hex file doesn't seem to get recognized by
> Studio 7.  Do I need to rename it to just a ".eep" file?
>
> Can I start building the platform by flashing these files into the
> board?  If so, what is the process to add functionality (I2C, SPI,
> etc.)?  As a total newbie!
>
> If it's necessary to recompile and create new hex files, the process is
> unclear.  Is it spelled out somewhere such that a beginner can follow
> some basic steps to make the proper file(s)?
>
> It is my understanding that both flash and EEPROM need to be written,
> along with the fuses, [E:0xFF, H: 0xDC, L:0xFF].  Do I have these correct?
>
> Once I get this figured out, I'd like to submit a write-up for newbies
> and perhaps draw more users into AmForth.  How might I get this posted,
> when completed?
>
> Thank you in advance!
>
> Kind regards,
>
> Michael
>
>
>
> ___
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel
>

___
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel