forthright
forthright copied to clipboard
Adafruit feather?
Hello, I'm new to the esp8266 and would really like to experiment with your forth port but I am failing.
I'm targeting a adafruit esp83266 feather (https://www.adafruit.com/products/2821). I have successfully built forthright but have had no success connecting to it after flashing it. Connecting over the feather's usb to uart I see the initial boot loader stuff at reset but nothing more. I'm guessing that I'm using the wrong parameters for gen_misc.sh or deploy.sh. I've been successful with other simple c uart and wifi hello world type stuff so I'm pretty sure it's not the build environment.
Any help would be appreaciated. Thanks for you work.
Acknowledge that I got your request. I will look at it closer tomorrow (after midnight UTC).
Could it be bitrate settings?
I don't have a Adafruit Feather, only the NodeMCU devkit and my own designed device (room sensor). On Apr 6, 2016 08:53, "bb2048er" [email protected] wrote:
Hello, I'm new to the esp8266 and would really like to experiment with your forth port but I am failing.
I'm targeting a adafruit esp83266 feather ( https://www.adafruit.com/products/2821). I have successfully built forthright but have had no success connecting to it after flashing it. Connecting over the feather's usb to uart I see the initial boot loader stuff at reset but nothing more. I'm guessing that I'm using the wrong parameters for gen_misc.sh or deploy.sh. I've been successful with other simple c uart and wifi hello world type stuff so I'm pretty sure it's not the build environment.
Any help would be appreaciated. Thanks for you work.
— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/niclash/forthright/issues/2
I took a look at Adafruit Feather, and it uses ESP-12 module, just like I do in my design. You should not need to change anything in config to make it work.
So, if you "git reset" all changes, and do a default build, it should compile to something that will work. Do a fresh clone and then make all in the top-level directory.
If that works, see the arch/esp8266/deploy.sh for details of command line options to flash the code to the device.
If you make changes, you don't have to run "make" from the top level. Just do it inside the esp8266/ directory. The top level takes the Forth source code and makes it into an assembler data segment.
Hope that helps
Sorry for the late response and thanks for looking into it. I will go he it another try when I have a chance (busy race ght now).
Also, if you email me the flash images, I can test them on my hardware and see if the compile is actually working as you think.
Ok, so, good news. I did a pull and things are working! Yay!
I rolled back to where I was and was getting more than I previously got so I'm a bit confused. I've attached some output dumps if they are any use to you. The first is at commit 70ca7b3 where I rolled back to. After "
My memory was that I got nothing or scrolling "Error at:" over and over so I'm kind of confused as to why it behaved differently after I rolled back.
The second is at 957e5f8 when I entered "words" again after "init-done". "words" was echoed back this time but was overwritten by the output from words. 70ca7b3.txt 957e5f8.txt
Thanks for your help, insight and work on this. I've got a couple of minor changes I'll put in pull requests when I get a chance in case they're helpful. I also ran into a fairly amusing bug (most are when you couldn't get it working at all before;) I'll submit.
The 957e5f8.txt is probably working as much as is working for me. This is work in progress, and by no means completed. And don't expect stability in dictionary definitions either, as I will try to move towards a useful embedded vocabulary.
Near future steps; a. move much of the core dictionary to .rodata segment to conserve RAM. b. implement disk/flash I/O (I kind of like the old BLOCK concept, because it is easy to implement) c. peripherals
I'm the author of lina, where the design and a large part of the code of jonesforth is coming from. lina, and father project ciforth are present on github. lina has the WANT mechanism that loads words on demand from a coupled library that is sitting in blocks. You can easily reinstall the blocks code:
- find https://github.com/albertvanderhorst/lina
- mark all words from the modules BLOCKS and SCREENS
- copy those words over from the lina source and make sure everything compiles
- now you can adapt to having the blocks in flash. I would advise to adapt only only READ-BLOCK and WRITE-BLOCK which copy from ram to flash and vice versa. (In lina they read from a disk file). Diminish the number of blocks to 4 but not less. Now the whole library mechanism works from flash. For example you need not have SEE in the kernel, you can load it by WANT SEE. I will help you to replace the Intel assembler by an ESP2866 assembler. There are lots of words from ANSI Forth that would burden the kernel but are present in the library and can be loaded as needed. That is all work you do not need to repeat. There are facilities in there like merge sorting, quick sorting, binary search .
The best part is that one can add hardware interfaces that are processor dependant. WANTallows to have one library file for Windows 32/64 and linux 32/64 bit, by a mechanism of conditional compilation. So you can sort out ADC for your processor and then do WANT ADC. If some one tries this with the wrong processor he will just get an error message.