00:00:00 --- log: started forth/20.04.05 00:11:54 --- join: rdrop-exit joined #forth 00:32:53 --- join: john_cephalopoda joined #forth 00:34:45 --- join: kori joined #forth 00:34:45 --- quit: kori (Changing host) 00:34:45 --- join: kori joined #forth 01:02:39 Oh, hi kori. 01:03:26 hi all 01:04:03 Hey rdrop-exit 01:04:17 hey john_cephalopoda 01:04:32 hey rdrop-exit Zen Forth Guru! 01:04:59 hello Forth Master Technician (tm)! 01:09:03 hi john_cephalopoda 01:11:36 kori: Are you the kori from the 6c37 crux ports collection? 01:19:43 yes 01:26:20 Heh, the world is small. Or rather freenode IRC is small :D 01:30:20 i've been here a while!!! (whenever I'm on freenode) 01:35:10 It's fun to see a lot of familiar names every time I join a channel. 01:42:30 how's y'all 01:45:40 hi crab1 01:45:50 what ya up to 01:46:38 --- join: ecraven joined #forth 01:46:45 having a snack 01:46:55 btw does anyone know a good book/resource about designing VMs? 01:47:15 o what's your snack I got Haagen Dasz 01:47:23 Nutella 01:47:55 lucky boi 01:48:04 Forth-style VMs? 01:48:16 stack machines yeah 01:49:52 there's Koompan's stack machine book but it's not on VMs 01:50:07 * Koopman 01:50:18 it's available free online on his site 01:51:28 for threading techniques there's "Interpretation and Instruction Path Coprocessing" by Dabare et al. 01:52:17 I think a forth that's delimited by a character other than spaces would be nice because text is sometimes annoying to deal with and you could avoid escaping in strings 01:52:33 and articles reprints from The Computer Journal by Brad Rodriguez 01:52:51 crab1: Would make it harder to program though. 01:52:56 but no I mean VM more like retro's NGA or jvm and similar 01:53:27 john: why? 01:53:50 You'd need a character to separate words, so instead of pressing the spacebar you'd have to press some other key. 01:53:55 crab1, depends I'm happy with spaces, you don't need to escape anything if your Forth has control of the keyboard 01:54:32 :_square_dup_*_; 01:55:26 Maybe you could use one of the non-printing ascii characters, but your code editor would have to understand that and you'd have to map it to some key. 01:56:14 yeah something like that, or one of the unicode characters designated for private use, make it look like a dot product maybe 01:56:40 bind it to space and move space to another key 01:56:45 Advantage of a non-printing ascii char would be the small length of one byte :) 01:57:16 But yeah... Hmm... 01:58:13 You're right, a private-use unicode character would be advantageous because it usually won't be used in a string. 01:58:44 right, if you have unicode at your disposal 01:59:10 for a development environment I prefer 1 char = 1 byte 02:01:02 can do 4 byte at a time, it's reasonable 02:06:00 --- quit: rdrop-exit (Ping timeout: 264 seconds) 02:06:27 --- join: rdrop-exit joined #forth 02:06:42 I would only add Unicode to a Forth if a particular application requires it, i.e. as an optional add-on 02:10:47 well ASCII only uses 7 bits so you could add a character right 02:11:00 use the 8th bit 02:12:06 it's up to you how you input and display byte values above 127 02:13:00 and that way you get a character that nobody else will be using in their strings 02:13:18 but it may be hard for other languages to handle your source 02:14:00 to me a byte is a byte, my source is in blocks 02:17:55 what varies is how you input it, and how you display it 02:19:45 i.e. how you interpret keyboard events, and what font you use to display it 02:21:11 but anyway, I think when I make a forth I will try using a different delimiter than space 02:22:51 do you have a particular alternative in mind? 02:23:34 for now, visually I am thinking of the dot product symbol 02:24:37 but I'm unsure, it needs to be a simple symbol 02:24:52 won't that create a lot of clutter on your display if you replace all blank spaces with something visible? 02:25:56 I need something at least a little visible to distinguish from spaces that are now allowed everywhere else though 02:26:19 if 02:26:31 rdrop-exit: RETRO Forth actually supports unicode out-of-the-box :D 02:26:38 then you need two delimiters space and your dot product 02:27:39 john_cephalopoda, yes as do most desktop oriented Forths nowadays I imagine 02:29:03 space is no longer a delimiter though, it just means that you can have things like :Song by Artist.ogg:play: 02:29:24 john_cephalopoda, I'm old fashioned, I don't have a requirement for Unicode support in the Forth itself, if ever I needed it, I would want to have it as an optional add-in and keep the base Forth clean at 1 char = 1 byte 02:29:29 and that would be your string, just delimited like other words are form each other 02:29:53 --- quit: dys (Ping timeout: 265 seconds) 02:30:52 crab1, the reason and <100 spaces> are quivalent is that the space is treated as a delimiter 02:31:16 * equivalent 02:31:44 by the outer interpreter 02:31:47 why do you need 100 spaced between words 02:34:46 DKordic: ZX Spectrum 02:35:43 I don't, but I do often have more than one space between words to make it more legible and to highlight patterns 02:36:14 100 is exaggerated, but I also often use multiple spaces for alignment reasons. 02:36:47 the 100 was just to show that it makes no particular difference to the outer interpreter 02:37:56 For example juump tables are often aligned visually 02:38:04 and you could have :2:3:::+: 02:38:44 like I said it leads to visual clutter when it's not spaces 02:39:25 spaces are relaxing :) 02:40:21 3·2···dup··+·.·.··· 02:40:35 just may need to find the right character 02:40:36 3 2 dup + . . 02:41:37 what you posted looks like a bunch of A with circumflex 02:42:25 It's a center dot. 02:42:26 I guess my IRC client isn't configured to Unicode 02:42:47 on my terminal it looks like A with ^ on top 02:43:18 I'lll check the logs online, see what it looks like there 02:43:39 same as on my terminal: 02:43:40 http://tunes.org/~nef/logs/forth/20.04.05 02:44:56 "3:2:::dup::add:show:show" is probably how I would do this sort of thing 02:45:45 I think it's a little more clear to use full words to combat that visual business 02:48:28 http://tunes.org/~nef/logs/forth/20.04.05 02:48:32 shit 02:49:16 how would your comments look? 02:50:15 e.g. an end-of-line comment 02:51:56 I guess like this 3:2:::dup::add:show:show:\:bla bla 02:53:03 :program:This is my comment:drop:rest-of-program: would work too but not great 02:53:55 wouldn't it try to interpret "This is my comment" as a word name? 02:57:21 oh my concept for this forth says "is it in dictionary? if no, it is data." But idk if that is going to be workable because it introduces some problems 02:57:31 --- join: dys joined #forth 02:58:47 comments aren't data though 02:59:32 that's why you drop it 03:00:13 I see 03:02:49 it's a bit of a cavalier solution 03:03:10 makes it hard to catch typos 03:05:30 I at least want to give it a whirl and see how it goes, it will probably not be worth the challenges it introduces 03:06:11 that's one of the nices things about Forth it's easy to experiment with 03:07:02 yes :) 03:07:11 thank chuck for forth 03:07:23 right 03:09:10 unless you care about Forth standards there's no reason not to customize your Forth to be a perfect fit for you 03:09:45 if you care about forth standards you are not embracing the spirit of forth 03:09:50 personally I've never cared about Forth standards, although I do care about standards in other domains 03:12:06 I posted about this on reddit not long ago 03:12:20 wait 03:12:23 here we go: 03:12:25 A product or component involves a set of "given" or "fixed" technologies (hardware, devices, protocols, specs, layers, interfaces, etc...), that are externally specified by standards or the market. 03:12:29 I see a Forth's role as providing unfettered interactive control of these "fixed" aspects, bottom to top, so you can build up a specific solution with minimal fuss or bloat. In effect a Forth rolls the typical remaining layers and tools (device drivers, debug monitor, OS, shell, assembler, compiler, interpreter, etc...) into a single very tightly-wound no-frills minimalistic platform/framework. 03:12:35 Forth is the one aspect of the product that needn't conform to an external specification or standard, which is what allows it to remain small, nimble, and totally customizable. I don't really see Forth as a language, but as accumulated lore on the design and implementation of such (real or virtual) stack machines, and the programming of solutions on/with them. 03:13:20 ooh, that was a longer post than I remembered, sorry about the semi-spamming 03:13:36 no problem 03:16:07 I am good with well defined interfaces and protocols, points of contact in general must be very concretely specified, but I am not a fan of standard implementations or interfaces made so complicated that only one implementation will ever come into existence 03:20:06 I'm not a fan of having to go through a library to get to an interface or protocol, I'd rather deal with the interface or protocol directly. 03:20:21 exactly 03:20:40 also standards like JSON are fucking stupid 03:21:24 I'll take your word for it 03:22:41 bbl, stay healthy :) 03:23:35 toodles 03:49:49 --- quit: crab1 (Ping timeout: 265 seconds) 03:51:17 --- join: dddddd joined #forth 04:24:50 --- quit: john_cephalopoda (Remote host closed the connection) 04:25:05 --- join: john_cephalopoda joined #forth 04:35:13 --- join: dave0 joined #forth 05:04:18 how to compile a number into a word, as it is? without (LIT) I want to manually embed a sequence of bytes (assembly instructions) in a word 05:05:13 Which Forth dialect are you using? 05:05:57 --- quit: rdrop-exit (Ping timeout: 240 seconds) 05:06:17 --- join: rdrop-exit joined #forth 05:06:21 Gforth, for example, has some special words to handle assembly embedding: https://gforth.org/manual/Assembler-Definitions.html 05:10:20 spf-forth 05:11:11 Found its inline asm handling lib ; but it doesn't recognize a certain instruction so I was curious if there's a way to just embed a byte 05:11:19 --- quit: rdrop-exit (Ping timeout: 265 seconds) 05:12:08 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 05:13:32 how about just CREATE ? 05:15:26 we do it like this on Mecrisp-Stellaris 05:15:28 : 2plus ( u -- 2+ ) 05:15:29 [ \ *execute* mode 05:15:29 $2102 h, \ movs r1, #2 05:15:29 $1872 h, \ adds r2, r6, r1 05:15:29 $0016 h, \ movs r6, r2 05:15:29 ] \ *compile* mode 05:15:31 ; 05:19:04 --- join: rdrop-exit joined #forth 05:20:38 most forths have various comma words e.g. either b, ro c, to comma a byte 05:20:50 16, to comma 16-bits 05:20:59 32, to comma 32 bits 05:21:07 or similar words 05:21:31 some use h, for half-word etc... 05:21:48 thanks 05:21:55 my working example above is just inlined machine code for cortex-m0 05:22:48 right, your "h," is probably equivalent to "16," on my system 05:23:06 it lays down 16 bits 05:24:19 true, it's 'halfword' 05:24:43 right 05:24:52 i compile the code with a assembler them translate it as above to a word 05:25:52 i wrote about it here: https://mecrisp-stellaris-folkdoc.sourceforge.io/machine-code.html?highlight=machine%20assembly 05:27:03 DOS Forths also had comma-ing words for different segments, e.g. c,c to comma a byte into the code segment and c,h to comma a byte into the header segment (for multi-segment Forths) 05:28:02 One can add comma words for any space, buffer, target, or whatever, not just for the Forth dictionary 05:28:18 Anything that fills up 05:28:32 It's a common Forth idiom 05:29:16 If you have a space that stuff gets layed down into, you make a set of custom comma-ing words 05:30:04 You have a variable that tracks the current offset, just as DP does it for the Forth dictionary 05:30:59 I have factors for this 05:31:25 have you installed Jitsi yet ? 05:31:41 oops sorry, wrong ch! 05:32:27 (jitsi is a OSS video/audio system for communicating over the net) 05:32:56 it's gained a lot of users since the CoV-19 outbreak 05:34:55 so for example if you have a FOO buffer, you would have a FOO'ED variable to track it 05:35:33 then you would have various comma words e.g. B,FOO 16,FOO 32,FOO ,FOO etc... 05:36:30 if needed they could have overflow checks 05:39:19 you could even have S,FOO for strings #,FOO for variable length comma-ing, etc... 05:39:39 tp, not familiar with jitsi 05:40:28 I've been using zoom to conference with the kids, and whatsapp to chat with them individually 05:40:42 bbiab 05:40:46 --- quit: rdrop-exit (Quit: Lost terminal) 05:41:22 no problemo 05:42:43 Riot IM works quite well for individual video chat. Never tried conferences though. 05:43:14 It's a horrible messenger though. Totally unusable for me. 05:44:53 our computer club is trying jitsi out this week as we cant meet in person atm 05:47:36 Neat. 05:48:09 I've used it in the past. Good thing and self-hosting is possible. 05:48:11 i havent installed it yet, gotta update this pc first 05:48:39 yeah the club server has jitsi installed and working as a server 05:53:16 --- join: xek__ joined #forth 05:56:08 The Forth e.V.'s conference was twitch streamed this year. I'll have to look for the videos some time, some topics sounded interesting. 06:00:39 sadly looks like jitsi is a no-no on FreeBSD 06:00:45 I'll have to use Linux 06:02:28 --- quit: xek__ (Remote host closed the connection) 06:02:52 --- join: xek__ joined #forth 06:39:17 --- quit: jsoft (Ping timeout: 265 seconds) 06:51:19 tpbsd: I stopped using FreeBSD the last time I tried because DRM stuff doesn't work easily 06:52:22 I know there is a clever way to run Firefox using a simulated Linux system on FreeBSD but that is already getting unreasonably difficult for me 06:53:44 The only BSD I use now is NetBSD for really constrained systems, it is the only good free UNIX that 'runs on anything' anymore. 06:53:44 veltas, I run firefox on FreeBSD 06:54:07 Firefox runs on FreeBSD, but the native Firefox does not allow using most DRM 06:54:13 ahh 06:54:22 I like NetBSD also 06:54:25 and OpenBSD 06:55:07 my favorite is Openindiana but I Id have to compile heaps of my apps for it 06:55:30 I am interested to try OpenBSD but for the fun of it, not sure I have the patience to really rely on it 06:56:23 it's really nice but *only* runs OSS packages 06:56:29 no Nvidia etc 06:56:50 tpbsd: Hmm this is the issue with distros and different UNIXs etc, I enjoyed trying loads out but eventually for me I have gone with the path of least resistance. So I just use Arch Linux (or Debian for x86-32). Those are the things that burn me the least. 06:57:24 There is a nice "non-free" version of the Debian installer so your drivers work out the box 06:59:09 Imagine not running 'unfree' binary blobs on your computer. Almost the entire web uses what the FSF considers non-free JavaScript, do you think they care if you don't? 07:00:41 I have for a long time agreed with the stance e.g. FSF take that licensing and EULAs etc to try and limit how you use software is unethical and unhelpful. But I have always disagreed with their approach because it clearly doesn't work. 07:01:07 Open source got it right, lead by example. 07:01:49 opensource or gpl ? 07:08:38 Do I really want to use the 16 MB of non-free JS to display a 220KB image? 07:09:05 The web is a mess. DRM is useless and punishes the people who pay for things. 07:09:06 no ? 07:09:53 tpbsd: There are many websites that display only one image (comic/manga viewers, image boards) but are backed by tons of JS. 07:11:10 john_cephalopoda, yeah, the web seems to run on JS these days 07:11:53 tpbsd: GPL is an open source licence. But when I say 'open source' I mean the movement that distinguished itself from the 'free software movement' 07:12:13 JS should be the cherry on top of the cake, yet web designers build their sites out of cherry and put a crumble of cake on top. 07:13:44 veltas, to me the GPL is Free Software and the OSS another thing, not GPL 07:13:56 Yes 07:14:00 I know how you mean that 07:14:10 it's a bit confusing 07:14:26 But by the open source movement's definition of "open source" the GPL is a type of open source licence 07:14:42 Well it is *the* definition because they invented the term 07:14:43 I must admit, Im more of a BSD licence person now, but I still owe a massive amount to RMS 07:15:14 veltas, the OSS movement would have us believe it's the same as the GPL I think 07:15:19 Yes a huge amount of the software I rely on every day has credits to RMS 07:15:25 I'm not sure what you mean 07:16:02 Like, most people who call themselves "open source" advocates know the difference between GPL and MIT or BSD. And some are critical of GPL vs MIT, etc. 07:16:38 yeah it's a religous war Im sure neither of us want to get into here on #forth :) 07:16:55 I'm not involved in this war and never have been 07:17:14 in 1993 it was all much simpler 07:17:21 True that 07:17:37 me neither but I do tend to debate with those who think GPL == OSS 07:18:24 It's more like a subset relation 07:18:43 as usual history is always being changed by the victors which makes it difficult for those that were there at the time and remember 07:19:35 it was more like eric raymond wanting to slyly commercialise the GPL as I recall it 07:20:06 Yeah that is the point of open source 07:20:23 at the time a lot of GPL people were very upset 07:21:16 and everyone has a valid point, as a FreeBSD user I'm not so GPL strict now, in fact I release under the BSD lic now if I can 07:21:49 ie come to see some of the negatives of the GPL over the years, nothing is perfect 07:21:53 There is a philosophical difference and I know I am more aligned with the open source people, even if they are dirty commericalists or whatever people want to say 07:22:30 hahah, I am probably as well nowdays. Im no longer a GPL zealot, thats for sure 07:23:48 the forth I use (Mecrisp-Stellaris) is GPL3 and I'd rather it wasn't but I didn't write it 07:24:22 Hmm, I've got to look at my old repos for the licenses... 07:24:25 nowdays Im becomming more and more inclined to start wor`king on my own tethered Forth for cortex-m and that will be a BSD lic 07:24:39 My position, as I said before, is I don't think I have the right, nor should I threaten, taking someone to court and forcing them to do something because they used some software I wrote. 07:25:44 Looks like I used MIT/zlib pretty much from the beginning. Because it was too inconvenient to copy-paste the whole GPL and remember all its parts, I suppose :þ 07:26:07 john_cephalopoda, lol 07:26:43 I'm a electronics tech as well, a software lic doesnt have the same import to me as it does to a programmer 07:26:53 I think I read through the GPL and LGPL one or two times each. But it's just such a hassle. Nobody got time for that. 07:27:13 if I want to protect a hardware design I just make it really hard to copy, grind the numbers of the chips etc 07:27:32 tpbsd: Put a blob of epoxy on top of it all! :þ 07:27:38 john_cephalopoda, yeah, same here, Im not a lawyer 07:28:01 john_cephalopoda, with Carborundum dust mixed into the epoxy ? ;-) 07:28:18 Nil Carborundum Bastardo ! 07:28:32 (dont let any bastard grind you down) 07:28:53 tpbsd: Pour armored concrete around your hardware. 07:29:09 hahah, give weight to my design 07:29:44 Charge for hardware design by grams :D 07:31:10 john_cephalopoda, I once spent a week designing a awesome heavy duty monitor mount for a stock brokers office about 30 years ago, I made up about 20 of them and they were all fitted mounted from the ceiling 07:31:25 it was one of my best designs 07:32:15 Oh, nice! I got some Samsung monitor which doesn 07:32:23 a couple of years later I was back in that city and visiting a stock brokers office and noticed they also had many of my mounds hanging from the ceiling 07:32:24 't have an adjustable mount. It's the horror. 07:32:45 differnt stockbroker tho, and I only made the one set! 07:33:16 imitation is the best form of flattery I decided 07:33:31 yeah all the commercial ones were junk 07:34:02 these CRTs at the stockbrokers were huge and so the mount had to be able to stand the load 07:34:23 I chromed all the parts, they looked awesome 07:49:13 --- quit: dave0 (Quit: dave's not here) 07:55:11 --- join: crest_ joined #forth 07:56:17 hi. i just got mecrisp stellaris working on an old stm32f103 and s" is compile only on this forth 07:56:57 to write my own little conditional include logic i want to check if the last word in a file on my host computer is already defined 08:00:01 crest_, awesome, congrats 08:00:41 i use freebsd and while i got e4thcom kind of working on freebsd with the 64 bit linux abi 08:00:55 eww, e4thcom doesnt like FreeBSD 08:01:21 tpbsd: it starts up and as basic termial emulator 08:01:29 so does picocom 08:01:32 crest_, you can add RTS handshaking instead and then use any terminal ? 08:01:53 tpbsd: i use a direct usb serial 08:02:03 crest_, thats what I do, Ive made a few standalone binaries for that chip 08:02:09 crest_, auu 08:02:34 i'm self isolating at home and don't have access to my tools in the local hackerspace 08:02:43 crest_, the usb driver uses 'backpressure' to control flow 08:02:57 ascii-xfr -s works fine without line delay 08:03:03 crest if you try a 1ms EOL delay on picocom it may work fine 08:03:19 crest_, ahh, intersting to know 08:03:32 crest_, what baud do you use ? 08:03:59 i didn't configure any because assumed it makes no sense on a usb "modem" 08:04:11 so freebsd should default to 9600 08:04:24 but it feels to fast for just 9600 baud 08:04:37 i can raise it to 115200 and report back 08:04:39 it doesnt, but I've always configured it on picocom as I use it with USART normally 08:04:49 I'm sure it doesnt matter as you say 08:05:00 it's really fast wuth that usb connection 08:05:13 faster than my 460800 baud on other systems 08:05:17 and it requires just a single cable 08:05:25 yes, very handy 08:05:29 i have no tools except my hands and a multitool 08:06:04 i had to bend most of the pins on the ftdi232 chip out of the way to get rx/tx connected for the initial upload 08:06:18 ? 08:06:41 ahh ho bootloader on the f103 usb! 08:06:47 i have a few spare blue pill boards 08:07:02 have you run my binary diag on it ? 08:07:33 https://mecrisp-stellaris-folkdoc.sourceforge.io/stm32f1xx-diagnostics.html#stm32f103xx-diagnostics 08:07:34 they are the 128kb model and i run the eb13e308316527be6a8963098c7291d5.bin image i found online 08:07:46 aha thats a old one of mine 08:08:07 the new one helps you determine the chip with greater accuracy 08:08:23 i compiled mecrisp stellaris 2.5.3 from source and flashed that as well 08:08:30 cool 08:08:45 at least it compiles out of the box on FreeBSD 08:08:51 it didn't 08:08:52 Im running FreeBSD myself 08:08:58 oh why ? 08:09:03 oh yeah "bash" 08:09:08 i had to install gnu coreutils from ports to get md5sum etc. 08:09:22 (and of course the arm compilers) 08:09:39 bash etc. 08:09:50 I just compile the target in the source dir using gnake 08:09:52 gmake 08:09:53 than patch the shell scripts to call gmd5sum 08:09:56 and gmake 08:10:16 and remove the linux builds because there is no linux arm toolchain ports 08:10:19 i dont bother with the 'make every target' thing 08:10:52 I installed bash and symlinked it to handle Linux things 08:10:54 than i compiled the freebsd mecrisp and ran it on my amd64 with qemu static :-) 08:11:08 yeah me too 08:11:21 and you noticed the api stuff ? 08:11:25 which api stuff? 08:11:32 youcan even use the networking I've been told 08:11:49 the freebsd mecrisp has a API 08:12:06 it's quite different to the embedded one 08:12:18 sure almost freebsd syscalls should work 08:12:29 fo you can save and read files from the pc with it 08:12:40 i suspect it will get confusing to read /dev/kmem :-P 08:12:50 but other than that the arm emulation works pretty well 08:12:51 i havent used it apart from a quick test 08:12:58 it does 08:13:08 i've used it to compile freebsd package repos for arm boards 08:13:13 I'm a electronics tech and I only use the embedded stuff 08:13:22 nice 08:13:35 beats that very limited thumbulator 08:13:47 i used it for stuff like the 32bit raspberry pi 08:13:55 I spoke to the guy that made up the freebsd version 08:14:04 of Mecrisp-Stellaris 08:14:08 which is an ugly kludge, but cheap and available 08:14:38 I've only used Linux on the rpi, when it comes to large embedded I dont care what I use 08:14:59 i prefer to use freebsd if it can handle the task 08:15:28 and why not 08:15:35 e.g. read a reed relay switch via gpio and expose the door status in the hackerspace as irc bot 08:16:20 but back to forth related topics :-) 08:16:31 as a way to prevent uploading previous files, have you considered just concatenating all your Forth source into one file before upload after erasing flash ? 08:16:42 thats what I do 08:16:49 I also strip all the comments 08:17:06 at the speed of the usb serial i don't care about stripping comments yet 08:17:20 but eraseflash on your old image kills the usb serial 08:17:21 I do, I hate any delays 08:17:30 oh yeah! 08:17:39 it comes back on usart1 08:17:44 unless you use cornerstone ? 08:20:50 now i just get unhandled interrupt 3 08:21:15 ah ok 08:21:26 which cornerstone do you have I wonder 08:21:58 Jeelabs made a special one thats used here and there 08:22:33 just https://mecrisp-stellaris-folkdoc.sourceforge.io/glossary.html 08:22:37 are you planning to use the 2nd 64kb Flash on the board ? 08:23:07 afaik the image already uses it 08:23:35 which image ? 08:23:43 your old image i'm using 08:23:47 ahh 08:23:51 FLASH.. TOTAL REPORTED: 131072 USED: 90228 FREE: 40844 08:23:51 RAM.... TOTAL PRESET: 20000 USED: 888 FREE: 19112 08:24:01 (with a decimal base) 08:24:39 thats pretty old I cant remember if the conerstone was broken but I think it was, yeah I'm sure it was 08:24:52 there was no cornerstone 08:25:16 lemme check the wordlist 08:25:19 i just risked executing the example from the documentation 08:25:20 brb 08:26:28 looks like my step should be to learn about the mecrips terminal input buffering 08:26:47 to get a string out of the tib to pass to find 08:26:47 --- quit: reepca (Read error: Connection reset by peer) 08:27:09 i think you know more about Forth than I do at tis stage 08:27:13 --- join: reepca joined #forth 08:27:18 i sure don't 08:27:27 i haven't used forth in ages 08:27:39 i wouldnt be so sure, I'm a tech not a programmer 08:27:51 and just looked for a nice toy to pass the time 08:28:01 --- join: proteus-guy joined #forth 08:28:05 of course 08:28:17 do you think you have CoV-19 ? 08:28:19 so far i got the systick working and wrote a multitasking blinky 08:28:29 tpbsd: probably 08:28:35 thats not noob stuff! 08:28:45 how do you feel ? 08:29:02 mine was a mild case 08:29:19 excellent, and hopefully come out with some immunity 08:29:26 aka COVID-0x13 08:29:33 MrMobius: :-P 08:29:35 heheh 08:29:57 actually it's COVID-$13 around here! 08:30:28 it's COVID-0x13 over on #embedded 08:30:46 tpbsd: i followed the examples from the documentation 08:31:25 and used the multitask.txt 08:32:23 but followed the bloody datasheets to configure the gpio clock, open drain output pin and systick timer 08:32:50 crest have you seen the register pretty print on that binary ? 08:33:01 ie "gpioa." 08:33:07 tpbsd: yes it was very helpful 08:33:14 awesome! 08:33:39 are you familiar with cortex-m generally ? 08:33:56 no 08:34:01 ahh! 08:34:31 the STm32F103 (cortex-m3) has the most HORRIBLE gpio config ever 08:34:38 I totally hate it 08:34:48 i have only used with avrs with avr libc and/or asm in the past 08:34:55 aha 08:35:09 i once wrote a totally crazy line following robot that did all the logic in interrupt handlers 08:35:29 the later chips such as cortex-m0 which I use and the M4's all use a nice easy and non horrible GPIO config 08:35:45 the main function just configured the hardware and went into a sleep loop 08:35:48 did it follow a line well ? 08:35:52 sure 08:35:58 nice 08:35:59 crest_: "that did all the logic in interrupt handlers" that sounds like me irl 08:36:30 --- quit: dddddd (Ping timeout: 250 seconds) 08:36:52 crest_, if you like doing everything in ISR's then youll love the m3, you have TONS of interrupts! 08:36:59 i was even mean enough to allow nested interrupt handling and included a short "proof" of how deep the stack could nest given the worst case runtime of the interrupt handlers and the adc sample rate 08:37:42 tpbsd: i didn't like doing it that way. i just wanted to mess with my teaching assistant, because he claimed it was impossible 08:37:51 hahah 08:38:01 what were you teaching ? 08:39:40 i took "Produktionsinformatik" because it was the smallest evil among the optional courses i had to pick from 08:40:21 and you had some fun it sounds like ! 08:40:49 we had to program the avr and they assumed we would use the arduino ide 08:41:17 i asked if we could use avr libc and normal embedded c instead 08:41:38 crest_, if you use the TIB and search for Words previously loaded the problem there is words that have been changed ? 08:41:53 eww arduino 08:41:58 exactly 08:42:09 and those poor avr chips 08:42:17 they are already so easy to get up and running 08:42:23 everything is enabled by default 08:42:28 they were great in their day, back in 1897 08:42:34 and the datasheet is writen for human consumption 08:42:43 *written 08:43:21 I hate AVR as it happens, but then I had a Vulcan mind meld with the ARM cortex-m manuals and now Im good 08:44:12 they are crude 8bit cpus and the peripherals are limited 08:44:14 you know you can run Mecrisp-Stellaris on a cortex-m with zero external components, just power and 3.3v serial ? 08:44:36 and it will boot at 8Mhz and run fine 08:44:54 i dont think there is a easier chip to get running 08:45:25 anyway, the AVR is ancient 08:45:34 an avr just needs anything between 2.7v and 6v 08:45:39 heck, even your bluepill is ancient 08:46:00 i know. they're cheap recycled crap 08:46:06 crest_, what chip do you think you have in the bluepills ? 08:46:16 i didn't run your diagnostic 08:46:44 you can have up to 4 different mcu's at least iirc 08:47:11 but given that your forth image uses 90k and works it has to be one with 128k flash 08:47:11 it's probably a STM32F103C8 08:47:25 oh yeah, but how did you flash it ? 08:47:35 serial of course 08:48:34 the SWD and JTAG flashers wont flash over 64kb on a STM32F103C8 08:48:50 as the chip flash register says '64kB' 08:49:02 via serial 08:49:23 but you may have STM32F103CB which declares 128kB 08:50:21 which register do i have to read to find out? 08:50:23 Ive set the kernel up in that binary to think it has 128kB also 08:50:39 type ? there should be a menu ? 08:51:17 unlless that version didnt have it 08:52:23 type is the word to print a string 08:52:35 yes 08:52:48 one way to do it 08:53:07 ." I'm a string" is another but needs to be compiled 08:53:50 the only words in the image containing the substring "type" are "type" and "ctype" 08:53:54 there is no "type?" 08:55:17 it has all the Mecrisp-Stellaris built in words 08:55:49 theyre all here https://mecrisp-stellaris-folkdoc.sourceforge.io/words.html 08:56:04 hey i gtg it's 2am here, zz time 08:56:13 gn8 08:56:21 great to see a Mecrisp-Stellaris user, have fun! 08:56:32 yes. i missunderstood and assumed your image included some kind of hardware diagnostic already 08:56:46 and i found a solution 08:56:57 mecrisp has a working "token" word 08:57:04 but i really works line by line 08:57:21 so the scope for anything token returns is just the current line of input 08:57:47 but token $some_word find should do the trick 09:09:41 --- join: actuallybatman joined #forth 09:10:26 --- quit: reepca (Ping timeout: 260 seconds) 09:27:21 --- join: mark4 joined #forth 09:29:33 What are good names for words that access I/O space? 09:30:03 I am torn between IN and OUT, or IO@ and IO! 09:30:28 i would use the @ and ! because you might want to have c@ and c! in there too 09:30:31 Or maybe I/O@ and I/O! 09:30:42 x86 allows 8 and 16 bit io writes i believe 09:30:47 depends, are you configuring or using an io device? 09:30:59 mark4: This is Z80 but it's the same concept 09:31:43 I think I am going to keep it 8-bit only though 09:32:05 Zarutian_HTC: Just using an I/O device directly 09:33:04 But also these words might be used by a Forth programmer for general I/O address access I suppose 09:34:38 the difference, for example an uart, is that you configure the baud rate, start and stop bits and parity but use the uart to transmit or recieve a char/byte 09:37:11 I am writing generic words for accessing I/O space, not memory-mapped I/O but specifically the "I/O address space" that you get on x86 and Z80 09:37:41 So it really doesn't matter what kind of hardware interaction is happening here 09:37:53 --- quit: mark4 (Quit: Leaving) 09:43:09 --- quit: cheater (Ping timeout: 256 seconds) 09:58:18 --- quit: john_cephalopoda (Remote host closed the connection) 09:58:41 --- join: john_cephalopoda joined #forth 10:15:25 --- quit: john_cephalopoda (Remote host closed the connection) 10:15:37 --- join: john_cephalopoda joined #forth 11:24:10 --- quit: webchat9 (Ping timeout: 256 seconds) 12:03:55 --- quit: john_cephalopoda (Read error: Connection reset by peer) 12:04:10 --- join: john_cephalopoda joined #forth 12:17:54 --- join: reepca joined #forth 12:40:04 --- quit: reepca (Read error: Connection reset by peer) 12:40:31 --- join: reepca joined #forth 13:51:23 --- quit: xek__ (Ping timeout: 265 seconds) 13:55:56 tpbsd: wtf?!? why is the stm32f103 usb interface so braindead? 13:57:04 crest_: how braindead is it? 13:57:22 --- quit: gravicappa (Ping timeout: 265 seconds) 13:57:23 Zarutian_HTC: the usb interface the core share a 512 byte dual ported memory 13:57:50 the core sees this as 1024 32bit words with half of each word "ignored" 13:58:29 looks like they glued a 16bit usb interface to a 32bit bus and connected the address lines shifted by one bit 13:58:55 i'm sure there is some reason, but it's just annoying and ugly 13:59:24 if you can read german and c++ there is a guide here: https://www.mikrocontroller.net/articles/USB-Tutorial_mit_STM32 14:00:05 the same 512 bytes are also used by the can controller so you have to pick between usb and can bus 14:01:01 well the google translate isnt too terrible 14:04:46 some of it isn't too bad 14:04:58 just enable the transmitter and wait 1us 14:06:18 register interrupts and set the enable the 1.5k pull up (which is hardwired on the blue pill. unless you enable usb in time the host will log lots of usb failures) 14:20:07 this wierd access setup from the core could easily be masked by the @ and ! primitives, no? 14:34:53 --- quit: dys (Ping timeout: 265 seconds) 14:40:20 Zarutian_HTC: sure you can work with it 14:40:30 its just annoying 14:40:36 *it's 14:43:58 --- quit: john_cephalopoda (Quit: Leaving) 14:44:15 --- quit: kori (Ping timeout: 265 seconds) 14:46:04 --- join: kori joined #forth 14:46:04 --- quit: kori (Changing host) 14:46:04 --- join: kori joined #forth 14:50:50 --- join: dave0 joined #forth 15:00:02 --- join: dddddd joined #forth 15:15:59 back 15:40:28 crest_, perhaps because it's 16 years old ? 15:41:39 tabemann, welcome back!, crest_ is using Mecrisp-Stellaris of a F103 with one of my old bootable binaries! 15:42:06 cool 15:43:32 tabemann, the thinks people do when stuck at home self isolating! 15:45:24 I do them regardless, stuck at home or not! 15:46:27 :) 15:49:07 tpbsd: if i had a proper way to connect the usb serial adapter i wouldn't have started my journey by looking at the usb interface 15:49:10 btw 15:49:30 do h.2 and h.4 output 8 bit and 16 bit hexadecimal values padded with zeros? 15:49:53 instead i would've prefered to use a usb serial adapter with flowcontrol and at least one gpio pin for software controlled reset 15:50:30 crest_, and arduino!! 15:50:42 why would i use arduino? 15:50:57 a pin for software reset ? 15:51:15 you dont need a pin for software reset with Mecrisp-Stellaris 15:51:44 to reset the uC from my desktop without touching the reset button 15:52:26 but you can do that with the Mecrisp-Stellaris 'reset' command ? 15:52:43 only if the system is still responsive 15:52:45 I use that plus the ram clear command all the time 15:53:34 oh, pc software reset then ? 15:54:03 something like the arduino uses ? 15:54:16 e.g. while writing my blinky i forgot to yield the cpu in my blink task 15:54:37 cts from the usb/3.3v dongle to a transistor on the target ? 15:54:48 crest_, as you do 15:55:14 I just have a reset button on the target which gets pressed a million times a project 15:55:17 the cts/rts pins are required for hw flow control 15:55:26 yes, if in use 15:56:05 but access to the reset line from the host is nice because it can be used to run a test suite or fuzz things 15:56:17 and recover from almost all software errors 15:57:03 but for now a physical reset button works for the cases when i lock myself out 15:57:05 in the case of Mecrisp-Stellaris I only use the RTS from the board to CTS on the pc because it's the MCU thats the slow part 15:57:22 --- quit: X-Scale (Ping timeout: 260 seconds) 15:57:37 and when developing being locked out only happens about 1000 times a day :) 15:57:56 I've work out at least one reset button so far 15:58:13 Im thinking of using a contactless one next 15:58:17 back 15:58:52 --- join: X-Scale` joined #forth 15:59:26 --- nick: X-Scale` -> X-Scale 16:11:13 I just did my port of ihex.fs 16:11:28 wow 16:11:42 got ihex streaming up the terminal yet ? 16:12:38 not yet 16:16:46 nowI have hex streaming up the screen 16:17:02 hahah, awesome 16:17:17 ihex4 to be exact 16:17:38 tpbsd: btw my idea with token foo find drop 0<> cr . works in expect 16:18:22 crest_, brilliant! so many skilled embedded Forth programmers here lately! 16:18:34 now i just need a good way to upload code without disturb the rest of the system 16:18:42 crest_, what is 'token' ? 16:18:51 token a word in mecrisp 16:19:08 it takes the next token from the terminal input buffer (the current line) 16:19:30 so you can't hold on to the string 16:19:35 oh! 16:19:48 I never understood the description "token ( - - c-addr len ) Cuts one token out of input buffer" 16:20:15 run token + find drop 10 20 rot execute 16:20:44 token + find drop 10 20 rot execute ok. 16:20:44 . 30 ok. 16:21:11 token + gets you the single char string "+" 16:21:37 find searches the dictionary for it and returns the xt and flags 16:22:26 find in zeptoforth just returns a pointer to the word header, from which one can get the xt, the flags, the name, and the next pointer of the word 16:22:34 the 0<> cr . makes it easier to match the output because it reduces it to two cases 16:22:39 found or not defined 16:23:28 crest_, aha, I'm beginning to understand 16:24:27 crest_, I use hardware handshaking so I can use gnu screen as my terminal 16:24:44 i prefer tmux and picocom 16:25:00 or just picocom on my local system and i3 as tiling window manager 16:25:13 crest_, that way I can have multiple remote connections to the serial port 16:25:37 crest_, sadly tmux has no terminal capability 16:26:00 crest_, and picocom would never do what I need 16:26:10 what do you need that minicom offers? 16:26:25 i'm still looking for a good way to combine multiple files on my host system 16:26:48 to quickly reset the uC and upload my code 16:26:51 crest_, concatenate them into one large file ? 16:26:56 thats what I do 16:27:11 it's all automatic via my GVIM make button 16:27:17 sure cat $> >.blob.fs 16:27:31 but what about dependencies? 16:27:35 just flatten it all manually? 16:28:45 do you just run forgetram a lot? 16:28:55 this is a script I use to load all the files for zeptoforth into one file including removing all the comments 16:28:59 cat zeptoforth/src/common/forth/schedule.fs >> $ZEPTOFORTH 16:28:59 cat zeptoforth/src/common/forth/task.fs >> $ZEPTOFORTH 16:28:59 cat zeptoforth/src/stm32f407/forth/int_io.fs >> $ZEPTOFORTH 16:28:59 cat zeptoforth/src/common/forth/systick.fs >> $ZEPTOFORTH 16:28:59 cat zeptoforth/src/common/forth/basic.fs > $ZEPTOFORTH 16:28:59 sed 's/\\.*$//g' < $ZEPTOFORTH | sed '/^\s*$/d' | sed 's/([^)]*)//g' > $ZEPTOFORTH.rcas.fs 16:29:01 rm $ZEPTOFORTH 16:30:01 crest_, I use it forgetram when I'm creating a bootable binary image of the chip, same as when I made the binary youre using now 16:31:08 mainly because I load the program that does the flash--> bootable binary from ram on the target 16:31:36 hmm, forget that, it makes no sense 16:31:53 I use it for some reason instead of reset in that process anyway 16:35:39 i still haven't got a cornerstone that doesn't wipe at least the usb serial 16:36:02 i think I used the wrong one in that image 16:36:19 as far as i can tell you didn't include one 16:38:00 but maybe eraseflashfrom assumes a 64kb flash 16:39:01 I removed that image from my site a while back and deleted it here so I'm not sure now 16:39:14 neither am i 16:39:18 I think it was my forst release 16:39:28 would you like a new one ? 16:39:38 I'll make you a image made to order :) 16:39:50 i should probably figure out how to build image with usb serial myself 16:39:50 just tell me what you want in it ? 16:39:57 *an image 16:40:10 yeah, youd have no problems 16:40:19 expecially using QEMU 16:40:48 excepth perhaps for the SVD2FORTH stuff 16:42:24 i would like a mecrisp image for the bluepill board and the source code to modify it that includes a usb serial and definitions for the hardware like your nice gpioa. words 16:43:43 i want to look under the hood and understand what's happening 16:53:15 so far i use freebsd devd to create syslinks to /dev/cuaU[0-9] based on the serial number 16:53:52 giving me a stable name in /dev for my blue pills that i can use in a makefile 16:54:30 and use revoke to kill any existing openings of the cuaU device 16:55:06 followed by cat $> | picocom $(DEV) 16:55:25 but it would be nice to have something like e4thcom claims to have 16:55:29 *claims to be 16:55:53 that understands the forth system well enough to stop at the first compiler error 16:58:10 but it just stops after the first word 16:58:14 \i multitask.fs Uploading: ./multitask.fs 16:58:14 \ ----------------------------------------------------------- 16:58:14 \ Cooperative Multitasking 16:58:14 \ ----------------------------------------------------------- 16:58:15 \ Configuration: 16:58:17 128 cells constant stackspace ok. 16:58:19 at Line 7 in File ./multitask.fs 17:01:29 which is confusing, but could be a bug in the freebsd linux64 abi 17:13:02 wait i could do it the proper unix way... 17:13:22 just write a smart wrapper for ascii-xfr 17:23:51 crest_, I can make you a new binary with pretty print for all the registers, usb and a corberstone if you like ? 17:24:07 tpbsd: sure 17:24:16 how much free flash do you think you'd need ? 17:24:30 cause it will be fairly full by then 17:24:52 20-30k should be enough for my experiments 17:25:22 okies, I'll start on it later today 17:25:48 i've found a way to make picocom more bareable: a smarter send-cmd 17:26:09 none of that is bearable to me 17:26:13 just make $* followed by ascii-xfr -vs $* already helps 17:26:43 this is a video of my system, it's a bit dated now and it's poorly done as it was one of my first, but youll get the idea 17:26:44 what does screen offer? 17:27:21 https://www.youtube.com/watch?v=kDi-Nlz3-QA&t=5s 17:27:45 thx 17:27:59 screen is so superior that nothing else except purpose made scripts could compete 17:28:12 superior for Mecrisp-Stellaris that is 17:29:09 i've never liked screen because i had some run ins with one of the authors which disinclined me to trust any code he touched 17:29:28 it's poorly maintained now 17:29:54 the remote serial connections are the main attraction for me 17:30:35 it's taken me years to finally arrive at what I wanted 17:31:23 while I like the traditional Forths I cant use the traditional serial terminals at all, Id rather use C and arm-none-eabi 17:31:30 along with gdb 17:31:45 wait your setup allows make to inject into screen? 17:32:00 thats a 'remote serial connection' 17:32:48 i never use the screen terminal unless I'm doing some experiment with the hardware, but even then I usually do that via the editor 17:33:02 your video demonstrated what your setup does 17:33:09 cool 17:33:09 but not how it does it 17:33:24 but ill redo it, that video is poor in almost every way 17:33:43 yeah thats because it's so specific to what I do 17:33:54 Im happy to share but no one has asked 17:34:25 probably because the Forth users that see it already have their own system 17:35:51 crest_, this should get you going with screen :) 17:35:55 #!/bin/sh 17:35:55 PROJECT=`basename $PWD` 17:35:55 LIBRARY=library 17:35:55 FILE_NAME_X=$PROJECT-includes.fs 17:35:55 FILE_NAME_Y=$PROJECT.fs 17:35:55 # FILE_NAME_Z=printreg.fs 17:35:57 screen -p $PROJECT -X stuff "compiletoram\n" 17:35:59 # screen -p $PROJECT -X stuff "compiletoflash\n" 17:36:01 # screen -p $PROJECT -X stuff "forgetram\n" 17:36:03 screen -p $PROJECT -X stuff "reset\n" 17:36:05 screen -p $PROJECT -X stuff "72mhz\n" 17:36:07 screen -p $PROJECT -X readreg x `./rcas.sh $FILE_NAME_X` $FILE_NAME_X.rcas.fs 17:36:09 screen -p $PROJECT -X readreg y `./rcas.sh $FILE_NAME_Y` $FILE_NAME_Y.rcas.fs 17:36:13 # screen -p $PROJECT -X readreg z `./rcas.sh $FILE_NAME_Z` $FILE_NAME_Z.rcas.fs 17:36:15 screen -p $PROJECT -X paste x 17:36:17 screen -p $PROJECT -X paste y 17:36:19 # screen -p $PROJECT -X paste z 17:36:21 rm $FILE_NAME_X.rcas.fs 17:36:23 rm $FILE_NAME_Y.rcas.fs 17:36:36 thx 17:36:40 rcas.sh is that comment removal script I pasted earlier 17:38:32 so tmux has send-keys maybe i can combine tmux and picocom 17:38:51 hehe 17:39:05 or just unix utils ? 17:40:34 crest_, another screen problem is that it's limited to 460800 baud 17:40:47 Id be using 1 - 2 mbs if I could 17:41:53 crest I set out in 2014 to make a forth design env that was faster than Gcc/gdb on stm32, and I have that now so Im happy 17:42:22 --- join: jsoft joined #forth 17:42:26 sure a fast edit compile test cycle is important 17:42:34 it uploads faster, it's heaps faster to design and debug because ... Forth 17:42:43 and forth makes the testing a lot faster and more powerful than c 17:42:45 it it to me 17:42:53 and avoids the full cycle for each tiny change 17:43:08 i can upload a 10k source file in about 2 seconds 17:43:20 no openocd needed 17:43:49 still a stall in your mental pipeline 17:44:07 I do a full source upload, but I move Words that are debugged into the "includes.fs" file and they get written to flash 17:44:18 but better than other eco systems e.g. compiling c++ with lots of templates 17:44:32 i always execute development code from ram 17:44:59 yeah, a stall is inevitable with a on chip Forth 17:45:23 oh 17:45:29 we alos have a tethered Forth which is really interesting 17:45:40 btw, I got the ihex dumper to dump 17:45:43 tabemann, during the upload cycle 17:46:44 tabemann, nice 17:47:10 tabemann, want a complex shell script to turn it into a binary ? 17:47:15 --- quit: Keshl (Ping timeout: 265 seconds) 17:47:21 it's made for gnu screen 17:47:45 i run the script and get a binary, I dont have any manual intervention 17:48:46 the thing is that screen is of little use to me because I don't have RTS/CTS because not only does the USB on STM32L476 not support it, but my USB-serial fob doesn't have RTS or CTS pins either 17:49:24 tabemann: a proper usb serial adapter can be had for < 5 USD or EUR 17:50:09 or $1 aud 17:50:09 --- join: rdrop-exit joined #forth 17:50:40 tpbsd: does that include shipping for a single board? 17:50:57 --- join: Keshl joined #forth 17:51:04 Unix friendly CP2102 chipset dongle, with Rx, Tx, nRTS,nCTS and other control signals, including +5 and +3.3 volts available on pins or holes for pins or wires to be soldered. Usually under $2 on eBay, and the most useful model in my opinion 17:51:33 https://mecrisp-stellaris-folkdoc.sourceforge.io/_images/usb-ttl-6pin-cp2102.jpg 17:51:47 crest_, no 17:52:06 crest_, my dongles came from China and I buy 10x at a time 17:52:14 can you switch between 5v and 3.3v? 17:52:34 they output +5 and +3 17:52:48 just use what you want 17:53:45 tabemann, I will do a patch for providing RTS on the F407 soon 17:53:47 mine has GND, RX, TX, +5 and +3.3 IIRC 17:54:00 cool beans 17:54:25 tpbsd: which dev board would you recommend to get away from the blue pill? 17:54:40 tabemann, yeah, many do only that, they usually have the other signals on the chip but it needs SMT skills to solder wires to them 17:54:50 crest_, ouch thats a hard one 17:55:03 crest_, does it have to be STM32 ? 17:55:15 I own two different DISCOVERY boards the STM32L476 and the STM32F407 17:55:20 not really 17:55:22 i ask because Nordic are pretty impressive 17:55:33 and you get wireless 17:55:39 it would only be for personal projects 17:56:02 but it would be nice if they're cheap enough to leave them in a project 17:57:10 256k flash, 32k ram and bluetooth radio does sound great 17:57:12 one setup I've heard of people doing is doing something like a Cortex-M for their core processing and then wire it up to an ESP8266 for wireless 17:57:20 have a look at nrf52832 ? 17:57:23 serial over bluetooth would be nice :-P 17:57:40 tabemann, ESP8xxxx ewww 17:58:00 plus the nordic cortex's have some excellent facilities 17:58:31 tabemann, you get 3 micrograms of CoV-19 with every ESPxxx ;-) 17:59:02 tpbsd: from the way I've heard it put with the ESP8266 is that the ESP8266 is used essentially as a peripheral to enable wireless 17:59:30 Ive found that Chinese homegrown products really suck. American tech is light years ahead 17:59:32 tpbsd: esp32 :-P 18:00:00 tabemann, it is but it's a waste of space imho 18:00:28 the nordic stuff has wireless and is seriously good by comparison 18:00:28 tabemann: but for a lot of applications the esp chips are good enough 18:00:40 they're cheap enough and include wifi support 18:00:49 the only readon espxxxx is so popular is because arduino users could use them 18:01:25 and because its easy to connect to wifi and has enough resources for tcp 18:01:52 dont do it tabemann, the esp will drive you so nuts you'll jump out the window 18:01:53 its fine unless you're battery powered 18:02:10 ignore this undercover ESPxxxxx salesman! 18:02:21 I'll have to remember about Nordic 18:02:22 lol 18:02:29 but you have to build ontop the existing crappy libs because the hardware is so buggy 18:02:51 tabemann, zepto fort can be easily ported to the nordic I think 18:03:10 i remeber the the SHA2017 badge team wanted to melt down the chips and their creators 18:03:17 and of course the nrf52832 has a Mecrisp-Stellaris binary 18:03:23 hahahh 18:03:29 lol 18:03:47 I have worked with a few nordic Mecrisp-Stellaris users and was a bit jealous of that chip 18:04:18 crest_, Im stuck on stm32f051 as I have 480 chips in stock 18:04:43 and I love using them, way to late for me to switch to the nordic 18:04:49 why did you buy so many? 18:05:17 AVENET had them for $0.56 ea in 2014 adn the lot was a batch of 480 18:05:40 they price was for a single unit, but I wanted a lifetime supply 18:05:53 how many do you have left? 18:05:58 theyre 32 pin UFN 18:06:09 um ... 478 18:06:22 they're a sunk cost! 18:06:28 ignore them 18:06:31 as economists would put it 18:06:53 if you need <10 chips order 10 chips next time 18:07:08 they came in sealed aluminium bags, on chip carriers with moisture dots, full of nitrogen and a complete supply history 18:07:13 nope 18:07:39 I like in Australia, Ive ben doing embedded since 1974 and I know a great chip when I see one 18:07:53 like = live 18:07:53 which is great if you want to use them for anything safety critical 18:08:45 it can be very hard to get stuff here, and considering CoV-19, how easy will it be to get chips for the next few years ? 18:09:40 plus those same chips are about 3x as expensive right now 18:09:59 (if you can get them) 18:10:04 great but how important is that if you've used just a handful? 18:10:24 in 2014 I had no isea how many Id use 18:10:39 this is australia ... 18:10:57 but isn't your time more important? 18:11:20 there are none available here, I cant get fedex to send me some overnight unles I want to pay $100 + 18:11:40 is it really cheaper use external support chips for bluetooth etc.? 18:11:46 sure, my time is the most important thing to me, especially at age 66 18:12:24 okay i'm spoiled by 1-2 day shipping and affordable overnight shipping for for a lot of things in germany 18:12:32 it's never cheaper to use external chips except perhaps for a hobbyist 18:12:50 and are you a hobbist these days? 18:12:59 yeah, retired mostly 18:13:23 i still make gear, cant help it after a lifetime of doing so 18:13:48 I have a ton of projects 18:14:07 the nRF52840 dk board is a bit expensive to just put into hobby projects like a door sensor 18:14:33 and I'm still in the infatuation stage with Forth having only started with it in 2014 18:14:45 crest_, hmm maybe thats the wrong one 18:14:48 the annoying fact is that at the price point of 40-50€ you can grab a raspberry pi (or some other pi) 18:14:55 the units people were using cost $10 18:15:25 maybe this one: Nordicsemi nRFgo Starter Kit nRF51822 18:15:30 and that runs forth as well almost every other language you want to throw at it 18:17:10 crest_, have you met matthias koch ? 18:18:14 back 18:20:33 I'd buy a more expensive board just because I can't see myself soldering 18:20:53 so I'd opt for a board with pins on it over a board for holes for soldering 18:21:07 tabemann, sure 18:21:14 tpbsd: yes i met him at 32c3 18:21:40 he gave talk on mecrisp for msp430 18:21:47 tabemann, and you have some reasonable boards, even if the discovery boards are pretty cheap 18:22:04 crest_, yes, it's a shame that he is virtually deaf 18:22:39 tabemann, there are more expensive boards that are really nice, gold pins, plenty of room 18:22:50 Olimex make some of them 18:23:13 but the discos and nusleos have all the basics 18:23:22 and are dirt cheap 18:23:26 nucleos 18:23:27 tpbsd: https://media.ccc.de/v/32c3-7520-compileroptimierungen_fur_forth_im_microcontroller 18:23:33 the only things these boards really lack which I'd like is wireless 18:23:39 crest_, Ive seen it 18:24:09 tabemann, then a nordic board may be in your future ? 18:24:21 tpbsd: the last few years we managed to get a good team of volunteer translators for all german and english presentations 18:24:30 crest_, nice! 18:25:03 matthias gets by, his written English is very good 18:25:30 tpbsd: possibly 18:25:43 tabemann, the ESP stuff is pretty horrible imho 18:25:46 but the real time translations widen the audience and relief the pressure on speakers to present in english 18:26:40 tabemann, for instance the flash is loaded into ram before it runs but the flash is a lot bigger than the fam ... 18:26:43 ram 18:27:12 crest_, yes, thats very organised, just what I'd expect 18:27:29 i see you haven't been there 18:27:57 its quite chaotic and a lot of things go wrong, but there are enough people to catch most of it in time 18:27:57 crest_, hahah, no Ive only ever ben to Hongkong on a technical course in 1985 18:28:15 crest_, I drive a Audi 80 quatro 18:29:05 ive often wished for a chip with a lot of ram and small flash but virtually all microcontrollers are the opposite 18:29:08 it's nothing special in germany but theyre rare in Australia 18:29:26 MrMobius, true 18:29:44 these nRFgo boards are expensive 18:30:29 and not really useful at that price point for hobbists 18:31:01 whereas these disco boards are cheap enough I can easily afford two of them 18:31:05 because there are cheaper boards with more features (and a higher power consumption as well) 18:31:06 Generic evaluation and development platform for Nordic ultra low power radios 18:31:07 Built-in support for nRFProbe hardware debug solution for Nordic radios with embedded microcontrollers 18:31:07 Two motherboards with standard socket for nRFgo radio modules 18:31:07 USB, RS232, ISP and hardware debug interfaces 18:31:07 Multiple power supply options: battery, external supply and USB 18:31:07 Multiple I/O ports and buttons for prototyping 18:31:09 On-board flash I/O controller provides USB interface to PC 18:31:13 Upgradable board firmware 18:31:15 Four 10-wire patch cables and eight 2-wire patch cables included in the kit 18:31:17 Seven segment status LED for board ID 18:31:19 Battery pack for three AAA batteries 18:31:21 Extension module socket for advanced prototyping 18:31:23 One nRFgo Display extension module with 16x2 alphanumeric display and joystick 18:31:25 nRFgo Studio for RF evaluation and testing 18:31:27 Auto detection and hot plugging of nRFgo radio modules 18:31:29 Rich set of configurable RF and link tests 18:31:31 whereas the cost of the nRFgo boards is such that unless I have a really good reason to own one.... 18:31:31 Easy access to available radio module configurations 18:31:33 Comprehensive set of documentation 18:31:35 you kids .... 18:31:43 which is worth it 18:31:53 in 1974 we were paying $287 aud for 1 16 bit MCU 18:32:07 but its the classic old style dev board 18:32:12 the 6800 was $178 USD 18:32:45 no clock, no peripherals, 8 bits, multiple voltages, 1Mhz 18:32:59 but hardware got cheaper and if less then optimally designed boards can be had for between $2 and $12 18:33:19 and all it takes to make them work is open source software that was already written 18:33:43 well the blue pill is an anomaly, but I grew up with the 6800 pr`icing 18:34:02 but thats not the board the nordic mecrisp users are using 18:34:25 theirs cost $10 and has a usb connector on one end 18:34:35 a nanopi neo2 costs just $20 18:34:42 it's the size of a usb stick 18:35:07 yeah, thats for broadcomm lovers 18:35:10 that includes a quad core cortex a53 18:35:19 allwinner h5 in this case 18:35:30 and and a untouchable sustem supervisor 18:35:49 oops, Im out of date already! 18:35:59 https://www.friendlyarm.com/index.php?route=product/product&product_id=180 18:36:23 not for me, Im small embedded only, lots of IO, machine control, no wifi 18:36:29 the thing is this - unless I need wireless, I have little reason to justify buying a nordic board when an STM disco board does everything else just as well and is much cheaper 18:36:35 https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=132&sort=p.price&order=ASC 18:37:28 256mb ram, four cores, ethernet and a micro sd socket 18:38:08 for most hobby projects power and long term availablity aren't that important ... until they are 18:39:33 that's essentially a lower price, lower capability version of the raspberry pi 18:39:46 exactly 18:40:16 this is the one I'm thinking of: nRF52840 MDK USB Dongle 18:40:27 and most allwinner chips are supported by freebsd 18:40:32 have a look at the pricing for that 18:40:36 I own a raspberry pi but haven't opened the packaging because I'd rather work on something that can truly run on the metal rather than something that needs an OS to work, because then I might as well use a PC 18:40:52 the larger ones are even selfhosting in a meaningful way 18:41:04 tabemann, I have a few rpi's but use them as higher end running Linux 18:41:21 tabemann: the original raspberry pi is a deeply flawed design 18:41:31 https://forum.mysensors.org/topic/9717/everything-nrf52840 18:41:37 the gpu bootstraps the cpu 18:41:54 that's the guy who we helped port Mecrisp-Stellaris to that chip 18:42:42 tpbsd: that looks a lot more reasonable 18:43:15 i don't need a two line lcd display, dpad input, piezo buzzer etc. 18:43:33 thats the one i was thinking of, and that MCU is crazy 18:44:01 fast, heaps of flash, wireless, and the cortex-m peripherals are really nice 18:44:13 the ones that nordic use 18:44:56 I mean any stm32 is great, but maybe nordic are just a bit better 18:45:10 NXP is also excellent, but pricier 18:45:20 wait is the 802.15.4 radio also zigbee compatible? 18:45:21 heh, are the peripherals any less confusing than other cortex m stuff from other manufacturers? 18:45:30 crest_, stay away from ATMEL SAM, their flash is a problem for Forth 18:45:42 tpbsd: what's so bad about their flash? 18:46:03 because it would be intersting to mess with my ikea tradfri lights from a forth system 18:46:07 crest_, min flash size is too big 18:46:22 and to little sram or just a waste of money? 18:46:33 it's just the flash 18:47:10 matthias refuses to port to it for just that reason 18:47:57 for Forth you want a minimum flash write size of something like 16 bytes or less 18:48:10 oh flash write size 18:48:21 not total flash capacity 18:48:34 and even for 16 bytes you want some kind of write deferral system like what I've coded for STM32L476 18:49:30 i assumed it was just a core with 8k sram and 1mb flash or something like that 18:49:41 matthias spent weeks with SAM trying to work around this 18:50:03 crest_, it's the SAM flash controller thats the problem 18:50:45 STM32F407 has the problem of really give flash erasure blocks, but that's not quite as bad 18:50:50 *big 18:51:04 --- join: boru` joined #forth 18:51:07 --- quit: boru (Disconnected by services) 18:51:09 an additional sub ghz radio for longer range would be nice 18:51:10 --- nick: boru` -> boru 18:54:18 you usually have a lot more than 8k sram on those arm chips that have 1mb flash 18:54:39 MrMobius: exactly 18:55:07 it would be a waste of flash 18:55:34 --- quit: dave0 (Quit: dave's not here) 18:56:58 yeah, 196kN on the 32F407 18:57:08 yeah, 196kB on the 32F407 18:57:19 of ram 18:58:19 The nRF52840 Micro Dev Kit USB Dongle features a programmable user button, RGB LED, up to 12 GPIOs and 2.4G Chip antenna on board. 18:58:20 The USB Dongle can be used as a low-cost Bluetooth5/Tread/802.15.4/ANT/2.4GHz multi-protocol node or development board. Alternatively, the USB Dongle can be used as a Network Co-Processor(NCP) with a simple connection to a PC or other USB enabled device. 18:58:55 at first glance it can be a lot of other things too 18:59:00 sure 18:59:07 you just have to solder a few headers to it 18:59:13 thats a adafruit advert I think 19:00:16 and you could solder a cable to the usb pads to make life easier until the radio works for everything 19:00:54 it's not tempting you is it ??? 19:01:02 it sure is 19:01:22 have you had a look at the chip specs yet ? 19:01:40 i have https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf open 19:01:56 --- join: iyzsong joined #forth 19:02:05 :) 19:03:36 i never meant to say that those cheap buggy boards are a good solution just that they are available and easy to get started with 19:04:37 The ARM® Cortex-M4 processor with floating-point unit (FPU) has a 32-bit instruction set (Thumb®-2 19:04:37 technology) that implements a superset of 16- and 32-bit instructions to maximize code density and 19:04:38 performance. 19:05:01 its not hard to write an image on a micro sd card, ssh into the system and modify python examples 19:05:41 crest_, actually I hated the 'bluepill' from the start and dont have any, but after writing the diag binaries on my site, Ive come to appreciate parts of the STM32F103 and it's still *very* capable 19:06:54 tpbsd: i lack the experience to compare it other modern chips because i'm a sysadmin and high level programmer by trade 19:07:00 crest_, I still have twenty STM32F103's from AVENET in sealed aluminium bag full of nitrogen that I'll probably never use, paid $3.50 a chip at the time 19:07:33 crest_, aha, I thought youd be in that category 19:07:49 crest_, but you seem to be pretty good at hardware also ? 19:08:32 back 19:08:44 not really but i do enjoy optimizing code and playing with obscure systems 19:09:22 crest_, Im at the complete other end of that scale 19:09:43 e.g. i have a rca 1802 membership card, but haven't gotten around to building a programmer for it 19:10:03 and toggling programs in in binary gets frustrating quickly 19:10:13 tabemann, the nordic stuff is M4 as well, so you could port zeptoforth easy enuf 19:10:22 but the rca 1802 instruction set is so insane 19:10:41 I had one a long time ago, threw the chip out iirc 19:10:44 and relatively well suited to forth 19:11:11 or i would be better to say you can't run anything but forth on such a strange design 19:11:18 it's amazing how many programmers are interested in old hardware, I *hate* old hardware 19:11:35 probably as I *had* to use it at the time 19:11:48 tpbsd: the only thing that makes me question the wisdom of that is just how much those boards cost 19:11:57 so naturally I *love* new hardware 19:12:09 i tought myself assembler with a 1802 emulator because i couldn't get ahold of introductory texts on powerpc assembler 19:12:29 tabemann, did you see the nRF52840 Micro Dev Kit USB Dongle ? 19:12:31 tabemann: the dongle costs just 10 bucks which is fine 19:12:54 and someone already go a radio repl working: https://github.com/rabbithat/nRF52_wireless_Forth_REPL 19:13:29 tpbsd: no I didn't 19:15:14 crest_, there is a more detailed account of his Forth journey here: https://sourceforge.net/p/mecrisp/discussion/general/thread/e29549a8d5/ 19:15:52 tpbsd: after the rollercoster of the last few years i just want to run when i see sourceforge 19:15:58 tabemann, it's a bargain for $10 considering the MCU and wireless + usb 19:16:19 adding malware^Wadware to opensource software installers 19:16:26 crest_, I run when I see github 19:16:34 https://sourceforge.net/p/mecrisp/discussion/general/thread/e29549a8d5/ 19:17:03 oops 19:17:20 rdrop-exit, ZEn Guru of Forth! 19:17:20 good morning Forthwrights 19:17:44 hello Forth Master Technician (tm)! 19:17:50 hehe 19:17:52 gn8 19:18:11 rdrop-exit, crest_ is using one of my older Forth bootable binaries! 19:18:21 cool 19:18:34 i think crest_ makes #2 ! 19:18:45 hehe 19:18:57 #1 bombed badly, arduino had melted his brain cells 19:19:24 poor guy, I think it drove him to drink 19:21:51 catching up on the logs, you guys had a high traffic night 19:22:54 we did 19:23:34 we had a 'hardware night' on #forth, something that hasnt happened since 1969 when Chuck was here ;-) 19:24:17 tabemann, acyually that high quality nordic board with lcd etc is probably EXACTLY what you need as you cant solder 19:24:22 hmm, 1802 assembly is probably not bad with macros 19:24:49 always thought loading in 16 bit constants 8 bits at a time looks daunting otherwise 19:25:26 1802 is funky but fun 19:26:07 (as an intellectual exercise, wouldn't want an 1802 for anything else) 19:26:15 too funky for me, I bought a chip in the 70's and when I read the datasheet I ran around screaming and rending my clothes 19:26:50 back 19:27:38 tabemann, actually that high quality nordic board with lcd etc is probably EXACTLY what you need as you cant solder 19:28:00 I just don't want to shell out $100+ for a single board 19:28:19 especially since I see myself buying a bunch of boards in the near futrue 19:28:20 The COVID-19 pandemic has become one of the most complex and unpredictable events to affect our world in our lifetime. IBM has expanded the 2020 Call for Code Challenge to seek innovative solutions to the pandemic's impacts. 19:28:20 Developers and problem solvers: join us in building open source solutions that make an immediate and lasting impact. 19:28:20 The deadline to submit your solutions is July 31st. 19:28:36 and win $100,000 USD 19:29:02 tabemann, but this will be a quality board the like of which youve never seen 19:29:12 veltas, p@ i.e. port fetch, pb@ for port byte fetch 19:29:50 tabemann, in fact it's TWO boards 19:29:51 tpbsd: I'm going to just get that USB dongle for now, maybe get the uber high quality nordic board later 19:30:06 tabemann :) 19:30:44 tabemann, uber quality and uber packed with resources 19:31:16 tabemann, it comes with all the leads you need, everything 19:31:33 it's like night and day to other cheap boars 19:40:13 back 19:40:14 --- quit: reepca (Read error: Connection reset by peer) 19:40:21 wb 19:40:34 * tabemann just purchased the dongle 19:40:37 --- join: reepca joined #forth 19:40:56 covid 19 has been very helpful for my hobby productivity :P 19:41:38 it hasn't been for me, because my work expects me to work as if I were employed in the normal fashion, but just at home instead 19:41:56 tabemann, at least you get paid for it ? 19:42:06 yes 19:42:18 Not mine, I've been doing stuff around the condo 19:42:23 tabemann, nice, sadly nordic may seduce you away from stm! 19:42:39 lol 19:43:03 rdrop-exit, if you go outside Duarte may be there with his M6 and shoot at you! 19:43:06 M16 19:43:36 I duck when I'm on the balcony 19:44:04 hahah 19:44:09 I hope they at least allow you to go to the grocery store 19:44:23 The neighborhood is so quiet since the lockdown 19:44:27 tabemann, only id he's faster than bullets 19:44:48 We've been ordering groceries online when needed 19:45:02 same here 19:45:26 Even though we have 8 or 9 shopping centers within walking distance 19:45:46 initially I could only order a 'basic box' for $80 and the supermarket puts whatever they like in it 19:45:48 here the grocery stores are still open but they're advising people to stay six feet apart and in the lines by the checkouts they put markers down telling people where to stand while they wait 19:46:23 the post office guy delivered today, no mask, no nothing 19:46:33 we get fresh fruits and vegetables delivered from the countryside 19:46:49 I get fresh air delivered from the countryside 19:46:53 nice 19:47:12 better than volcano ash 19:47:24 it wafts from across the farmers paddocks across my street 19:47:29 thats a fact! 19:52:00 why is it that the docs for the STM32F407VG say that it has 192K of RAM, but when I configure it to use 192K of RAM it crashes 19:54:29 $30000 ? 19:55:28 tabemann, the nRF52840 contains 1 MB of flash and 256 kB of RAM 19:56:06 I just wrote a RAM test 19:56:20 it crashes when it attempts to read from $20020000 19:56:35 indicating that that's the actual top of the RAM 19:58:46 .equ Kernschutzadresse, 0x00008000 @ Darunter wird niemals etwas geschrieben ! Mecrisp core never writes flash below this address. 19:58:46 .equ FlashDictionaryAnfang, 0x00008000 @ 32 kb für den Kern reserviert... 32 kb Flash reserved for core. 19:58:46 .equ FlashDictionaryEnde, 0x00100000 @ 992 kb Platz für das Flash-Dictionary 992 kb Flash available. Porting: Change this ! 19:58:46 .equ Backlinkgrenze, RamAnfang @ Ab dem Ram-Start. 20:01:11 lol, mathias says 992 kB and has allocated 1048576 ram for it 20:01:25 oops thats flash! 20:02:09 and thats right, matthias never makes a mistake! 20:03:36 tabemann, ok, matthias also says 128 kb ram 20:03:51 it must be a error in the doc 20:05:12 and mind you this was from more of a technical overview rather than a true datasheet 20:08:42 okay, well, I'm gonna hit the sack, so g'night 20:09:04 bonne nuit tabemann, stay healthy 20:15:53 night tabemann 21:21:05 --- quit: reepca (Ping timeout: 265 seconds) 21:57:19 --- join: webchat9 joined #forth 22:08:23 --- join: reepca joined #forth 22:30:01 --- quit: actuallybatman (Ping timeout: 256 seconds) 22:36:59 --- join: actuallybatman joined #forth 22:39:50 --- join: gravicappa joined #forth 23:16:23 --- quit: Keshl (Quit: Konversation terminated!) 23:22:43 --- quit: dddddd (Ping timeout: 256 seconds) 23:23:20 --- join: Keshl joined #forth 23:36:14 --- join: mtsd joined #forth 23:59:59 --- log: ended forth/20.04.05