I just ordered a Propeller ASC+ board and was wondering if there were any specific Tachyon modules (roms?) for it. Are there any "items of note" to be aware of when using this board with Tachyon?
This is my first Prop board and my first opportunity to use Tachyon !!
Hi thej, what's held you back for so long!? I know you are really hanging out for the P2 like many of us here but it's amazing how much the humble P1 can do, especially with Tachyon loaded, but then again, it is an amazing chip.
I notice that the ASC+ is designed primarily as a shield so therefore the default is to have 2k2 series resistance on port pins interfaced to the Arduino but at least they do have jumper pads there too. One funny thing I noticed was that the I2C bus is shared via 2k2 resistors on a couple of the MCP3208 analog inputs which could cause a problem with booting if those analog inputs were being used (2k2 vs 10k pullup, 2k2 wins). This board can be powered from the USB port BTW.
However with Tachyon I don't see any problems and a quick &08.12.11.13 SDPINS will setup the microSD card on the board too. You just need to load EASYFILE to start reading and writing FAT32 files. If you want to use the MCP3208 A/D chip then it really is quite simple and most of the work is done by the [MCP32] RUNMOD which is a very small code module that gets loaded into the Tachyon cog as needed. I might even put the few lines Forth code back into EXTEND to make it as simple as "4 ADC@" to read an analog input etc.
Yes...It's true. I have been following the P2 for quite some time now.
I haven't had enough time or an appropriate project for the P1 or Tachyon until now :-)
The real clincher was knowing that Tachyon will be in the P2 ROM !!!
VERY excited about that !!! There really wasn't any reason to wait anymore.
Thanks for the info!
Yes, I will definitely be using the MCP3208 DAC chip.
It will be a couple weeks before I get my board so I will dive further into your Tachyon docs.
Thanks again and Merry Christmas and Happy New Year !!!
...
The real clincher was knowing that Tachyon will be in the P2 ROM !!!
VERY excited about that !!! There really wasn't any reason to wait anymore.....
To which I say "WHAT?" That is cool! Which thread on the P2 forum talks about this? I'm curious now.
...
The real clincher was knowing that Tachyon will be in the P2 ROM !!!
VERY excited about that !!! There really wasn't any reason to wait anymore.....
To which I say "WHAT?" That is cool! Which thread on the P2 forum talks about this? I'm curious now.
Shawn
There is only 16kB of ROM on the P2 and Chip's loader wasn't using much of that so everyone was wondering what we could squeeze in there that could prove useful. Since I already had Tachyon running for the P2 and had been upgrading it to suit new FPGA versions and running FAT32 it seemed like the only contender slim enough to fit in there and pack some punch. So I had a long phone call with Chip and along the way we included a write protect CLKSET switch for the upper 16kB of RAM at $F.C000 so that the boot ROM could be out of the way but still accessible since it is loaded into RAM anyway.
Since then I have been optimizing the kernel and SD card initialization to minimize secondary boot times which uses the SD card, either as raw sectors or as named FAT32 files. The other thing I am looking at now is stripping and compacting the dictionary leaving only the useful words in there but still packing as much as we can into the ROM.
BTW, we are calling it TAQOZ because Chip had been into making tacos at the time and so we not only reduced Tachyon O/S to TACOS, but then for various reasons to TAQOZ. I will probably start a new thread for it soon.
Here's a little inside view of some of the analysis I have been doing, this is a breakdown of a high level routine that I use in EASYNET which is begin used to exercise the lower levels but of course won't fit into the ROM (surely it's impossible )
The decompilation of this word shows how efficient and just as compact "word code" is compared to byte code. The .CNTS at the end of the listing shows the frequency of each type of wordcode since a single 16-bit wordcode could be a simple address pointer to PASM code, either in the cog or in the hub, or a Threaded address, or a conditional branch such as IFs and UNTILs etc, or a Tachyon "user" register bank offset, or a 9-bit literal.
I've spent the last several days digging for all things P1. I've been trying to get up to speed while I'm waiting for the board to arrive :-)
Some items I've specifically been trying to learn are:
-how to get tachyon loaded on the P1
-how to load specific modules
-how to get "high res" NTSC B&W running/loaded in Tachyon
(I'm aware that the video buffer will cut into the HUB ram significantly. I will start small and see how it goes with my project. I don't need color)
Digging through old threads is starting to mess with me as so much has changed with tachyon!
Loading Tachyon
I'm using a Mac and have PropellerIDE installed.
I expect that v4.5 is the preferred version for P1 and that TACHYON.ROM would be the file that I would want to load.
The ASC+ board has 64K EEPROM on board. I assume that is where TACHYON.ROM would be loaded.
Loading other Modules
I assume that starting a terminal and pasting the forth code for each module would be how I would load modules???
NTSC / VGA Video
Other than loading OBEX code as a ROM (not sure of the process exactly) I'm not sure how to do this. I'm leaning toward NTSC as, again, I'm assuming the driver would use less RAM.
What I do know is that I won't be writing my own driver.
@thej - I have been using 4.7 for quite a while now so I will probably move 4.5 into the archive, so please just use 4.7 like this:
Load this file into the Spin tool although I always use BST
Dropbox: Tachyon/V4/V4r7/TACHYON4r7.SPIN
The default clock setting will automatically adjust for 5 or 10MHz crystals but I also use 6MHz and sometimes that section is enabled. The default baudrate is 115200 but I find that anything up to 2M is reliable.
So F11 this into your Prop board and use a proper ANSI terminal. I normally use TeraTerm if I am on Windows and during an F11 I simply have the terminal disconnect but still open using alt-FD. But all my main work is done on Linux and I prefer minicom and to disable the terminal during an F11 download I simply go to the port settings menu ^AP and leave it there and then escape back to the terminal after the download.
Once Tachyon is loaded you should get a terminal response plus ^C or a break will reset it back to the prompt. Now set your terminal for a "line" delay of say 15ms (min 7ms) and make sure there is no character delay (=0) as Tachyon is quite snappy and there is never any need to slow down terminal downloads as I so often see in many Forths. So now you can copy/paste or send an ASCII file, you need to download EXTEND.FTH as the most basic add-on. If you have an SD card connected anywhere you can then download EASYFILE.FTH and simply specify the SD pins once afterwards.
BTW, the standard loader only loads 32k, but I guess it would be possible to write a 2-stage loader that loaded up all 64k of the EEPROM as otherwise you won't be able to use any large binary image such as TACHYON.ROM.
I could add a hires VGA object to the kernel as a ROM, that is the binary image of this section is copied into upper EEPROM after EXTEND is loaded so as to free up precious hub RAM but the ROM may be referenced and loaded by name at runtime. I did look at using those serial RAM chips some time back as video RAM with direct output to VGA however I find it easier to just use another Prop dedicated to VGA bitmaps and communicate to it over my intercom bus or just plain serial. Do not baulk at using another Prop instead of a mish-mash of hardware, it is simpler, cleaner, and just makes good sense.
HINT - click on the "Use the Forth" logo to go to a links page for links to Dropbox etc.
I also use FL fast load once I have EASYFILE loaded so that everything is buffered into a temporary or named file and loaded from the file where it is not necessary for flow control. With TAQOZ in P2 ROM this should be possible since I have FAT32 already resident, all it needs is an SD card. One advantage of downloading to a named file is that it is also an easy way to transfer source code onto the card. Maybe some of the newer USB serial chips have proper flow control built into them because as we know you can't rely upon the O/S to do it.
@Peter,
is this FL something like redirecting serial in into a temporary file on sdcard and then loading from that file so that compilarion/execution is delayed but save?
Maybe you can answer in the tachyon thread to keep others informed about this. Thanks!
Yes, the advantage of simply saving into a file first is that we can do so without any extra delays after which Tachyon will compile from the file as fast as it possibly can, without the need for delays. This is especially necessary after the dictionary has been COMPACTed into upper EEPROM and the access time to search is slow and no matter what we do, we have bottlenecks and so we need some large delays overall. Certainly I use FL for EASYNET since by that time the dictionary has been compacted to make hub RAM available for this module.
BTW, I have noticed that there seems to be a bug in that after a download using FL has finalized I hit the escape but I have to manually FLOAD the file. I think I should fix this up so that both an escape shouldn't be necessary and also it should of course automatically load the file as was intended.
@mjb - hex dumps are always in fixed increments simply for formatting but I've just added a "32 ALIGN" to DUMP to round up 20 to 32 etc to the current V4r7 version
I'm having trouble getting Tachyon4r7.spin loaded on it.
I'm using a Mac (10.13.1) and PropellerIDE.
I open the spin file in PropellerIDE and click the "RUN" button.
A transfer window opens and after a few seconds goes away.
I open a terminal program (Serial for Mac set to 115200.8.n.1) and I get a string of garbage characters.
I have teh terminal set to "VT100 Western (ASCII)"
I open a terminal program (Serial for Mac set to 115200.8.n.1) and I get a string of garbage characters.
I have teh terminal set to "VT100 Western (ASCII)"
What am I missing here?
J
Sometimes I change the header around line 9 to work with my boards that use 6MHz crystals rather than 5 or 10. I try not to leave it like that but all you need to do is enable the correct section. Use the tick before the braces trick to disable the brace etc.
Still trying to get proper communication to my P1 board.
Here's what's happening:
-I open PropellerIDE
-I open the "TACHYON4r7.spin" file
-I have the 5MHz clock set in the file
(uncommented the "{ 5/10MHZ CRYSTAL" line. I also tried uncommenting the next line with only "}" in it as well)
-I connect the ASC+ board
-PropellerIDE recognises the port (cu.usbserial-DN00S0VO)
-I click the "Compile/Run" button
-A small window opens saying it is transfering the file
-I can see the "Receive" light on the board lit
-After a few seconds the window says "Download Failed" and closes
I try my terminal program (Serial) anyway and I do get responses from the board. I can see the Transmit and Receive lights activating on the board.
They just look like Smile.
Upon opening Serial, I get this:
I try typing other things:
words
I get "w÷oïrðdæsñ" back. The echoed characters are wrong and pressing enter does nothing.
Even though PropellerIDE says the transfer failed, something is responding.
What kind of line endings is Tachyon expecting? (I have
Is there any flow control required? (XON/XOFF, RTS/CTS, DTR/DSR are all OFF)
Emulation is set to VT100
Text encoding is "Western (ASCII)"
Any thoughts??
J
More Stuff
I restarted my Mac to see if that would make a difference (not the first time for this process).
This time the transfer was SUCCESSFUL !! (other reboot test did not get a successful transfer).
I open Serial and I get the same garbled text.
I closed Serial, reopened PropellerIDE (This is NOT "Propeller Tool" to be clear) and tried the terminal there.
This is what I get there:
゚゚@ネᅠワ○₩ネ^ᅬ^ᅬY゚ᄄミヌメᄆ゙Yᅬ^ᅬ^ネホ₩ネᆴ2^@│チ←゙ネh`リp8a8hN`<`8@゚ネ│ネYネ@゚○₩ネᅦ○@゚@゚│レ○@○○ネ@テ@゚ᅱ│レ○@゚¢ネレᅦリ₩゙@ネ@゚ロY_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y゚ネᅠᆵGG0@
I would love any thoughts or suggestions on this one.
Exploring PropellerIDE a bit more...
I opened the Memory Map.
I can see all the code for Tachyon 4.7 in the P1 memory and it looks good !!
Scrolling through I can see several plain text areas such as "dictionary words" and later on the actual list of dictionary words, etc. If the transfer was garbled those ascii parts would not be intact.
So this points me back to the terminal emulation.
But why are BOTH terminals (PropellerIDE and Serial) displaying garbage and differently at that !
@thej - I can't seem to get PropellerIDE to actually download any code although it compiles fine with an F11, but that's all it does (Linux Mint 18.3). The F8 memory map is is from the compiler, not the Propeller.
Have you tried the same with the standard Prop tool or BST?
BTW, I never use any of the simple terminals that are built into any IDEs, especially the send/receive style ones as I prefer a proper ANSI version.
As far as I can tell, Prop 1 dev on the Mac is dead in the water.
My next attempts will be setting up a virtual machine with either WinXP or Ubuntu 17.
If I go with WinXP I will need to make ISO's on my other machine as my laptop does not have an optical drive :-/
@thej - Interestingly even though PropellerIDE didn't download and didn't throw up any errors, I decided to change the preferences from openspin to bstc to see what difference it made. Lo and behold it told me it was downloading etc etc and it works! Can you try that perhaps?
btw, I have all the bst builds in the Tachyon/more/tools/bst archive but the version that seems to work is bst-0.19.4-pre11.
The crystal on the board is labeled "5.00045" so I'm thinking that this is a 5MHz crystal...
Apparently not. (or I don't understand what the ' marks do in the config ;-)
I had removed the ' marks in front of the 5MHz setting and placed them in front of the 6MHz lines.
That's the config I was working with.
I setup VirtualBox on my Mac with a fresh install of WinXP, setup PropTool and tried it out. The transfer of Tachyon seamed to work just fine. I got the same garbage text in the terminal. I dug around in PropTool and saw some thing that didn't make sense; (i don't remember the window) it displayed the clock frequency as 96MHz and 6MHz crystal. Weird, the crystal is LABELED 5MHz.
Never deterred, I grabbed my girlfriends old winXP laptop (dusted it off) and setup PropTool and TeraTerm and tried that. Surely this would work.
Nope. Same garbled text!!
Ok, thinking back to the 6MHz clock that I saw in PropTool. Lets try 6Mhz. Nothing else is working.
And Voila!!
I've never been so happy to see "DAWN#" on the screen !!
Back to the Mac to test it again.
I got PropellerIDE to successfully load Tachyon and opened CoolTerm to see the Tachyon title text!
@thej - while the garbage characters indeed looked like an incorrect baud or clock rate, it didn't make any sense. Is this one of your boards? It would be good to see a clear enough photo of it out of curiosity.
I've been able to download programs using Proploader from SimpleIDE. If you open the SimpleIDE application using Show Package Contents that you get when you right-click on the SimpleIDE package. Look in Contents/MacOS and you'll see proploader which you can copy and paste into the Applications folder. You'll have to use Terminal to run it. I type "proploader -s -e " then drag the .binary file I want to use to the Terminal window and hit return. You can also execute "proploader -h" to get help information.
It's a lot of work and Parallax should fix PropellerIDE to use proploader, but this gets the job done.
Below is a picture of the actual board I have.
You will note the "5.00C45" label on the crystal. I thought the "C" was a zero before.
This is the way I have the config file for the crystal settings:
'{ 5/10MHZ CRYSTAL
_clkmode = xtal1 + pll8x
_xinfreq = 10_000_000 ' <--- AUTOMATIC 5 or 10MHz operation change at boot
sysfreq = 80_000_000
'}
{ 6MHZ CRYSTAL
_clkmode = xtal1 + pll16x
_xinfreq = 6_000_000
sysfreq = 96_000_000
}
My assumption is that the ' marks comment out everything on that line, thus the 5MHz is Disabled and the 6MHz is Enabled with this config. Please correct me if I'm wrong.
On another note, once I copy/past the EASYFILE and EXTEND files, what would be a good way to test that they have been properly received?
@thej - A pair of curly braces always indicate a multi-line comment and a tick precedes a single line comment. If you put the tick before the closing brace it doesn't mean anything since it is part of the comment. However if you now also put a tick before the opening brace it will disable the multi-line "comment" while the tick before the closing brace will stop the compiler from seeing an unpaired closing brace as an error.
Since the Spin compiler does not have conditional compilation directives we would uses braces around our "conditional" statements with a default tick before each closing brace. Now when we want to enable a statement all we need to do is add a tick before the opening brace. Therefore the opening brace in the section '{ 5/10MHz CRYSTAL is disabled allowing it to compile for a 5/10MHz crystal whereas the { 6MHZ CRYSTAL section is disabled. This is the reverse of your assumption.
Source code meant to be compiled by Tachyon itself can be pasted or send as raw ASCII with a suitable line delay of at least 5ms but 10 to be safe. All these files are enclosed in TACHYON END directives which not only place the compiler into a non-echo line numbering mode, but it also reports errors at the end of the load as well as other statistics. So rather than a "test", it simply reports as best as it can.
End of source code, 0000 errors found
Code bytes used = 142
CODE:$3CB8 = 15032 bytes
NAME:$57B8 = 7240 bytes
DATA:$7678 = 360 bytes
FREE: = 6912 bytes
Data Stack (0)
Comments
This is my first Prop board and my first opportunity to use Tachyon !!
J
I notice that the ASC+ is designed primarily as a shield so therefore the default is to have 2k2 series resistance on port pins interfaced to the Arduino but at least they do have jumper pads there too. One funny thing I noticed was that the I2C bus is shared via 2k2 resistors on a couple of the MCP3208 analog inputs which could cause a problem with booting if those analog inputs were being used (2k2 vs 10k pullup, 2k2 wins). This board can be powered from the USB port BTW.
However with Tachyon I don't see any problems and a quick &08.12.11.13 SDPINS will setup the microSD card on the board too. You just need to load EASYFILE to start reading and writing FAT32 files. If you want to use the MCP3208 A/D chip then it really is quite simple and most of the work is done by the [MCP32] RUNMOD which is a very small code module that gets loaded into the Tachyon cog as needed. I might even put the few lines Forth code back into EXTEND to make it as simple as "4 ADC@" to read an analog input etc.
Enjoy!
I haven't had enough time or an appropriate project for the P1 or Tachyon until now :-)
The real clincher was knowing that Tachyon will be in the P2 ROM !!!
VERY excited about that !!! There really wasn't any reason to wait anymore.
Thanks for the info!
Yes, I will definitely be using the MCP3208 DAC chip.
It will be a couple weeks before I get my board so I will dive further into your Tachyon docs.
Thanks again and Merry Christmas and Happy New Year !!!
Jason
Shawn
Since then I have been optimizing the kernel and SD card initialization to minimize secondary boot times which uses the SD card, either as raw sectors or as named FAT32 files. The other thing I am looking at now is stripping and compacting the dictionary leaving only the useful words in there but still packing as much as we can into the ROM.
BTW, we are calling it TAQOZ because Chip had been into making tacos at the time and so we not only reduced Tachyon O/S to TACOS, but then for various reasons to TAQOZ. I will probably start a new thread for it soon.
Here's a little inside view of some of the analysis I have been doing, this is a breakdown of a high level routine that I use in EASYNET which is begin used to exercise the lower levels but of course won't fit into the ROM (surely it's impossible )
The decompilation of this word shows how efficient and just as compact "word code" is compared to byte code. The .CNTS at the end of the listing shows the frequency of each type of wordcode since a single 16-bit wordcode could be a simple address pointer to PASM code, either in the cog or in the hub, or a Threaded address, or a conditional branch such as IFs and UNTILs etc, or a Tachyon "user" register bank offset, or a 9-bit literal.
I've spent the last several days digging for all things P1. I've been trying to get up to speed while I'm waiting for the board to arrive :-)
Some items I've specifically been trying to learn are:
-how to get tachyon loaded on the P1
-how to load specific modules
-how to get "high res" NTSC B&W running/loaded in Tachyon
(I'm aware that the video buffer will cut into the HUB ram significantly. I will start small and see how it goes with my project. I don't need color)
Digging through old threads is starting to mess with me as so much has changed with tachyon!
Loading Tachyon
I'm using a Mac and have PropellerIDE installed.
I expect that v4.5 is the preferred version for P1 and that TACHYON.ROM would be the file that I would want to load.
The ASC+ board has 64K EEPROM on board. I assume that is where TACHYON.ROM would be loaded.
Loading other Modules
I assume that starting a terminal and pasting the forth code for each module would be how I would load modules???
NTSC / VGA Video
Other than loading OBEX code as a ROM (not sure of the process exactly) I'm not sure how to do this. I'm leaning toward NTSC as, again, I'm assuming the driver would use less RAM.
What I do know is that I won't be writing my own driver.
Any assistance would be awesome !
J
Load this file into the Spin tool although I always use BST
Dropbox: Tachyon/V4/V4r7/TACHYON4r7.SPIN
The default clock setting will automatically adjust for 5 or 10MHz crystals but I also use 6MHz and sometimes that section is enabled. The default baudrate is 115200 but I find that anything up to 2M is reliable.
So F11 this into your Prop board and use a proper ANSI terminal. I normally use TeraTerm if I am on Windows and during an F11 I simply have the terminal disconnect but still open using alt-FD. But all my main work is done on Linux and I prefer minicom and to disable the terminal during an F11 download I simply go to the port settings menu ^AP and leave it there and then escape back to the terminal after the download.
Once Tachyon is loaded you should get a terminal response plus ^C or a break will reset it back to the prompt. Now set your terminal for a "line" delay of say 15ms (min 7ms) and make sure there is no character delay (=0) as Tachyon is quite snappy and there is never any need to slow down terminal downloads as I so often see in many Forths. So now you can copy/paste or send an ASCII file, you need to download EXTEND.FTH as the most basic add-on. If you have an SD card connected anywhere you can then download EASYFILE.FTH and simply specify the SD pins once afterwards.
BTW, the standard loader only loads 32k, but I guess it would be possible to write a 2-stage loader that loaded up all 64k of the EEPROM as otherwise you won't be able to use any large binary image such as TACHYON.ROM.
I could add a hires VGA object to the kernel as a ROM, that is the binary image of this section is copied into upper EEPROM after EXTEND is loaded so as to free up precious hub RAM but the ROM may be referenced and loaded by name at runtime. I did look at using those serial RAM chips some time back as video RAM with direct output to VGA however I find it easier to just use another Prop dedicated to VGA bitmaps and communicate to it over my intercom bus or just plain serial. Do not baulk at using another Prop instead of a mish-mash of hardware, it is simpler, cleaner, and just makes good sense.
HINT - click on the "Use the Forth" logo to go to a links page for links to Dropbox etc.
Thanks to all who helped me coming up with Tachyon.
As far as I know the Tachyon kernel will become part of P2 which sure is something as an accolade for Peter. Congratulations for this!
To all Tachyonista - may the Forth be with you.
Yes, the advantage of simply saving into a file first is that we can do so without any extra delays after which Tachyon will compile from the file as fast as it possibly can, without the need for delays. This is especially necessary after the dictionary has been COMPACTed into upper EEPROM and the access time to search is slow and no matter what we do, we have bottlenecks and so we need some large delays overall. Certainly I use FL for EASYNET since by that time the dictionary has been compacted to make hub RAM available for this module.
BTW, I have noticed that there seems to be a bug in that after a download using FL has finalized I hit the escape but I have to manually FLOAD the file. I think I should fix this up so that both an escape shouldn't be necessary and also it should of course automatically load the file as was intended.
trying to dump20 or 30 bytes gives only 16 ???
running still 4.5
.. 10 FOR I 10 * . CR I 10 * weather SWAP DUMP CR NEXT
0
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
10
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
20
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
30
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
40
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B24: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B24: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B34: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90
0000.7AF4: 24 0D 14 62 A4 38 22 05 00 1C 00 03 00 15 18 03 $..b.8".........
0000.7B04: F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B24: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000.7B34: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
ok
..
I'm having trouble getting Tachyon4r7.spin loaded on it.
I'm using a Mac (10.13.1) and PropellerIDE.
I open the spin file in PropellerIDE and click the "RUN" button.
A transfer window opens and after a few seconds goes away.
I open a terminal program (Serial for Mac set to 115200.8.n.1) and I get a string of garbage characters.
I have teh terminal set to "VT100 Western (ASCII)"
What am I missing here?
J
Sometimes I change the header around line 9 to work with my boards that use 6MHz crystals rather than 5 or 10. I try not to leave it like that but all you need to do is enable the correct section. Use the tick before the braces trick to disable the brace etc.
Best to download it again...
Here's what's happening:
-I open PropellerIDE
-I open the "TACHYON4r7.spin" file
-I have the 5MHz clock set in the file
(uncommented the "{ 5/10MHZ CRYSTAL" line. I also tried uncommenting the next line with only "}" in it as well)
-I connect the ASC+ board
-PropellerIDE recognises the port (cu.usbserial-DN00S0VO)
-I click the "Compile/Run" button
-A small window opens saying it is transfering the file
-I can see the "Receive" light on the board lit
-After a few seconds the window says "Download Failed" and closes
I try my terminal program (Serial) anyway and I do get responses from the board. I can see the Transmit and Receive lights activating on the board.
They just look like Smile.
Upon opening Serial, I get this:
ÁÁ@ ÞßÉ÷Øßîæ^Ï^ÏYñ¨ß±ßößñYÏ^Ï^ß÷æïÐ2^ßç@èßéç88hÿNÿ<8@Ðß÷ÈçïÁÞèYÞß÷@ïçßîæÇß÷Èßî@ñ@ÞÉïèßÞßî@îÉîÁßïØïç@¿ÿ@ÖÉïèßÞßî@ïàÈßÇïÑß÷Þßæß@@ÿÁ¿_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñY_ñYÿ G0@ÿ
I try typing other things:
words
I get "w÷oïrðdæsñ" back. The echoed characters are wrong and pressing enter does nothing.
Even though PropellerIDE says the transfer failed, something is responding.
What kind of line endings is Tachyon expecting? (I have
Is there any flow control required? (XON/XOFF, RTS/CTS, DTR/DSR are all OFF)
Emulation is set to VT100
Text encoding is "Western (ASCII)"
Any thoughts??
J
More Stuff
I restarted my Mac to see if that would make a difference (not the first time for this process).
This time the transfer was SUCCESSFUL !! (other reboot test did not get a successful transfer).
I open Serial and I get the same garbled text.
I closed Serial, reopened PropellerIDE (This is NOT "Propeller Tool" to be clear) and tried the terminal there.
This is what I get there:
゚゚@ネᅠワ○₩ネ^ᅬ^ᅬY゚ᄄミヌメᄆ゙Yᅬ^ᅬ^ネホ₩ネᆴ2^@│チ←゙ネh`リp8a8hN`<`8@゚ネ│ネYネ@゚○₩ネᅦ○@゚@゚│レ○@○○ネ@テ@゚ᅱ│レ○@゚¢ネレᅦリ₩゙@ネ@゚ロY_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y_Y゚ネᅠᆵGG0@
I would love any thoughts or suggestions on this one.
J
I opened the Memory Map.
I can see all the code for Tachyon 4.7 in the P1 memory and it looks good !!
Scrolling through I can see several plain text areas such as "dictionary words" and later on the actual list of dictionary words, etc. If the transfer was garbled those ascii parts would not be intact.
So this points me back to the terminal emulation.
But why are BOTH terminals (PropellerIDE and Serial) displaying garbage and differently at that !
j
Have you tried the same with the standard Prop tool or BST?
BTW, I never use any of the simple terminals that are built into any IDEs, especially the send/receive style ones as I prefer a proper ANSI version.
I also tried the unix "screen" program for VT100 terminal emulation and it only printed question mark characters inside a dark circle.
I would like to try BST but I don't know where to find it
j
freeware.the-meiers.org
dgately
BST here
I'm trying them now...
Insta-crash on launch :-(
As far as I can tell, Prop 1 dev on the Mac is dead in the water.
My next attempts will be setting up a virtual machine with either WinXP or Ubuntu 17.
If I go with WinXP I will need to make ISO's on my other machine as my laptop does not have an optical drive :-/
j
btw, I have all the bst builds in the Tachyon/more/tools/bst archive but the version that seems to work is bst-0.19.4-pre11.
I do all my work right now on the P1 and Mac, "I'm not dead yet"
https://github.com/parallaxinc/PropellerIDE/issues/41
dgately
I'm running the latest MacOS 10.13.2.
The crystal on the board is labeled "5.00045" so I'm thinking that this is a 5MHz crystal...
Apparently not. (or I don't understand what the ' marks do in the config ;-)
I had removed the ' marks in front of the 5MHz setting and placed them in front of the 6MHz lines.
That's the config I was working with.
I setup VirtualBox on my Mac with a fresh install of WinXP, setup PropTool and tried it out. The transfer of Tachyon seamed to work just fine. I got the same garbage text in the terminal. I dug around in PropTool and saw some thing that didn't make sense; (i don't remember the window) it displayed the clock frequency as 96MHz and 6MHz crystal. Weird, the crystal is LABELED 5MHz.
Never deterred, I grabbed my girlfriends old winXP laptop (dusted it off) and setup PropTool and TeraTerm and tried that. Surely this would work.
Nope. Same garbled text!!
Ok, thinking back to the 6MHz clock that I saw in PropTool. Lets try 6Mhz. Nothing else is working.
And Voila!!
I've never been so happy to see "DAWN#" on the screen !!
Back to the Mac to test it again.
I got PropellerIDE to successfully load Tachyon and opened CoolTerm to see the Tachyon title text!
What an adventure!
j
It's a lot of work and Parallax should fix PropellerIDE to use proploader, but this gets the job done.
https://www.parallax.com/product/32214
And here are some additional details:
http://mghdesigns.com/wiki/asc:start
Below is a picture of the actual board I have.
You will note the "5.00C45" label on the crystal. I thought the "C" was a zero before.
This is the way I have the config file for the crystal settings:
'{ 5/10MHZ CRYSTAL
_clkmode = xtal1 + pll8x
_xinfreq = 10_000_000 ' <--- AUTOMATIC 5 or 10MHz operation change at boot
sysfreq = 80_000_000
'}
{ 6MHZ CRYSTAL
_clkmode = xtal1 + pll16x
_xinfreq = 6_000_000
sysfreq = 96_000_000
}
My assumption is that the ' marks comment out everything on that line, thus the 5MHz is Disabled and the 6MHz is Enabled with this config. Please correct me if I'm wrong.
On another note, once I copy/past the EASYFILE and EXTEND files, what would be a good way to test that they have been properly received?
Thanks again!
J
Since the Spin compiler does not have conditional compilation directives we would uses braces around our "conditional" statements with a default tick before each closing brace. Now when we want to enable a statement all we need to do is add a tick before the opening brace. Therefore the opening brace in the section '{ 5/10MHz CRYSTAL is disabled allowing it to compile for a 5/10MHz crystal whereas the { 6MHZ CRYSTAL section is disabled. This is the reverse of your assumption.
Source code meant to be compiled by Tachyon itself can be pasted or send as raw ASCII with a suitable line delay of at least 5ms but 10 to be safe. All these files are enclosed in TACHYON END directives which not only place the compiler into a non-echo line numbering mode, but it also reports errors at the end of the load as well as other statistics. So rather than a "test", it simply reports as best as it can.