2026-02-10 12:30:49 One slightly neat thing about having MicroPython on the the ESP32-C6, and then using load_ram to test machine code blobs is that I get to separate the tasks of initializing the hardware from using the initialized hardware. That load_ram blob will inherit whatever hardware setup the MicroPython left behind. So hopefully I'll be able to turn the LED on and off without having to initialize the GPIO, 2026-02-10 12:30:51 and use the UART without having to initialize it. I get to solve those problems separately. I can go work on initializing the UART AFTER having known good code for sending data OVER the UART. 2026-02-10 12:33:09 I've gotten this set up nice and clean. I started out using a little short USB-C to USB-C cable, but yesterday Amazon delivered a little USB-A to USB-C male/male adapter that has no cable section - it's just a little short thing that I can plug into the ESP32 and then that plugs straight into the USB-A port and just hangs there. Leaves my USB-C port available to charge my phone, which is nice 2026-02-10 12:33:11 because it charges it faster. 2026-02-10 12:33:53 No big deal, but more pleasing desk tidiness. 2026-02-10 12:54:49 KipIngram, I don't understand how 'separating the tasks of initializing the hardware from using the initialized hardware' offers any advantage over the development environment I use. ie I always upload untested code into ram after reset, and test it, modify if needed and repeat. Previously tested code is run from Flash every time I reset the mcu. In the case of my dgital thermometer, the delay between reset and the code running is about 0.2 seconds so I 2026-02-10 12:54:50 dont notice it 2026-02-10 12:56:30 KipIngram, it's awesome to be able to see your testing results as you proceed with the ESP, I never have anything to compare my development environment against as the entipre embedded world is all C 2026-02-10 12:58:09 KipIngram, I do occasionally load up the latest popular systems and test them, then document the differences against what I use 2026-02-10 13:02:15 KipIngram, another interesting test is to print a long list of words and see how long it takes, does it interfere with your running program at all? as in a Forth 'printf' ? 2026-02-10 13:29:46 It may not offer any advantages, but I'm deliberately trying to avoid any fancy "development environment." I'm bootstrapping this from as little as possible. It seems evident enough to me how it helps - having a known good initialization in place means that if my code doesn't work it's because I'm not making the right moves to change the I/O or transmit my bytes over the UART. Starting from an 2026-02-10 13:29:49 uninitialized state I have no idea, when it doesn't work, whether the problem is in the init or in the runtime usage. I don't know where to focus looking for the problem. 2026-02-10 13:30:15 aha, I see 2026-02-10 13:30:38 It's the same sort of thing as bottom up development with testing - as each new layer fails to work, you suspect the NEW code - not the code you already confirmed. 2026-02-10 13:31:04 and youre developing your own Forth, and thats totally different from what I do which is only create Forth applications on Mecrisp-Stellaris 2026-02-10 13:31:52 It might not even work out - it might be that the load_ram operation screws over data structures that the prior initialization relies on. 2026-02-10 13:31:59 No real way to know for sure. 2026-02-10 13:32:18 I'm not really in... documented territory here. 2026-02-10 13:32:21 KipIngram, plus any new mcu takes *years* to become proficient with, as modern mcu's are so capapable 2026-02-10 13:33:16 Yeah, it will take a while to get familiar with all of it. I don't even want to think yet about how long I may have to work on the WiFi, even targeting a simplified point to point link. At least the ROM contains some helper routines for managing it. Just no protocol level stuff. 2026-02-10 13:33:54 KipIngram, thats why I always say that ones choice of mcu is even more important than the foundational design of a project because the mcu is the biggest tool in the toolkit 2026-02-10 13:35:05 I definitely don't mean to be critical of your way of doing th ings. I've never actually used mecrisp, but everything I've read about it I find really impressive. Particularly mecrisp across. 2026-02-10 13:35:24 tabemann, wrote his own wifi driver for zeptoforth on the RP2040 using a very basic test system of a home wifi. It took a few months iirc 2026-02-10 13:35:43 That just felt like the perfect way of working with devices too small to support a true Forth on-board. 2026-02-10 13:36:07 While still getting an experience that "felt like Forth." 2026-02-10 13:36:52 I will always welcome any constructive criticism, it's dialog in the area of Forth embedded develpment that is scarse 2026-02-10 13:37:28 hardly anyone works in this area, I welcome all discussion 2026-02-10 13:37:36 That feels manageable (a few months). It'll be a while before I have to think about that, though - I'll first get a system up and running over the UART link, and get it mature enough that I can then work within it on further functionality. 2026-02-10 13:37:59 and how can I imrove without discussion of all aspects ? 2026-02-10 13:38:30 It's going to take me a while to get this whole meta-compile capability really in place, and all of that can come before tacking the "broader hardware" of the device. 2026-02-10 13:38:58 we do have a 'mecrisp-cube' that runs Mecrisp-Stellaris and C on the same system, he just uses the C driver for wifi 2026-02-10 13:40:07 https://www.spyr.ch/twiki/bin/view/MecrispCube/MarkdownManual 2026-02-10 13:40:44 how difficult is it to program the esp32 w/o a C toolchain? 2026-02-10 13:41:52 crc, Im only guessing but I'd think that it would be very hard/slow 2026-02-10 13:42:30 And meanwhile if I get a burr under my saddle and just really want to build and use some hardware gadget RIGHT NOW, well, I can program it in MicroPython and run with it. I could always replace that with Forth later when it's ready. 2026-02-10 13:43:21 crc, there was a 'punyforth' for the ESP8266 2026-02-10 13:43:55 https://github.com/zeroflag/punyforth 2026-02-10 13:47:44 I might look at trying this sometime. For now, I have built an ilo vm port (using the c toolchains) for both esp32 & rp2350, so I can run my konilo Forth on them, but would like to move to assembly at some point 2026-02-10 13:50:43 crc, but the ESP32-C6 is a RISC-V chip so somewhat newish, and thereforenot much in the way of Forth related support other than possibly Mecrisp-Quintus which doesnt list it 2026-02-10 13:51:22 I think my board is an older ESP32 model, not RISC-V 2026-02-10 13:52:44 https://lilygo.cc/products/fabgl-vga32 is what I have 2026-02-10 13:54:01 tpbsd: Re: the complexity of modern devices, it's very true - I'm wandering around in this technical reference for this particular gadget, and there's a LOT there. Like I said yesterday, though, none of it feels "alien" to me - it's all the "right kind" of information - the stuff you need to actually get stuff done. 2026-02-10 13:54:23 All of the address mapping, all the details on which bits do what, etc. 2026-02-10 13:54:44 And example recipes - set this, initialize that, etc. etc. 2026-02-10 13:55:22 There are scads of internal bits, and there's a big matrix that lets you map which ones you like to the external pins, and so on. 2026-02-10 13:55:58 crc, lilygo dont make it easy to see what ESP model they use! 2026-02-10 13:56:00 So the fact that blinking that LED in Python happens to involve GPIO 15 is just a setup detail. 2026-02-10 13:56:39 As far as I can tell I could map it to any "software GPIO number" I pleased. 2026-02-10 13:57:19 KipIngram, I think the fact that ARM developed CMSIS-SVD is very telling, regarding the complexity of modern MCU's. Theyre so complex that every last detail must be documented 2026-02-10 13:57:57 Yeah, any hardware needs every last detail documented. There's jsut a whole lot of them in these cases. 2026-02-10 13:59:11 But the first thing I will care about will be that LED - just to see it flashing under machine code control. And then the UART, and EVERYTHING else can wait. 2026-02-10 13:59:33 KipIngram, take the STM32Fxx, that mcu has 98 on board peripherals, 1778 registers and 14338 (bit)fields ! youd never live long enough to type all that in by hand 2026-02-10 13:59:58 And if it DOES turn out that I can inherit a UART setup from Python - if I can just start transferring bytes over it - then even the UART init can wait. 2026-02-10 14:00:08 KipIngram, yeah, flashing a led is the 'hello world' of embedded :) 2026-02-10 14:00:33 That's one of the things I like about this load_ram initial approach, in addition to not using up my flash p/e cycles. 2026-02-10 14:02:00 I once tested STM32-Cube I think it was, I plugged in a virgin STM32F0 discovery to my Linux box, connected to the STM32-Cube website, selected a 'blinky' and clicked on 'load', The led on the board started blinking. Total time from the start ? about 30 seconds 2026-02-10 14:03:30 And if I can get it wad of code over there that just turns the UART into an echo system - type at it and have it send that same data back - well, shoot - it'll be downhill from there until I start tackcling "other hardware." 2026-02-10 14:03:47 thats the easiest system Ive ever seen, but of course I knew nothing about how it was all happening ... was the led blinky a spinlock, was all the program could ever do ? or was it run by the systick in a big loop ? 2026-02-10 14:04:24 looks like mine is an original ESP32, not one of the newer variants 2026-02-10 14:05:02 so highly advanced free STM32 systems are really easy to pick a app, click on load and it runs, all online powered, but it's like magic 2026-02-10 14:05:52 even I with 40 years of embedded experience was totally lost on such a system 2026-02-10 14:06:26 crc, thats the problem, there are so many models of ESP32 2026-02-10 14:07:09 before the ESP32 there was only the ESP8266, and I have a couple Ive never used 2026-02-10 14:07:44 the ESP32 is relatively new compared to the ESP8266 which runs punyforth 2026-02-10 14:07:47 Yeah, I'm uncomfortable with magic. It's great that it exists - it empoweres a whole lot of hobbyists. I'm just a lot happier when there are no black box layers that I don't understand - ideally all the way down to the gates. 2026-02-10 14:08:29 It's part of my love for Forth - Forth is the only system I know that really puts me in a position to have that kind of total oversight. 2026-02-10 14:08:44 KipIngram, yeah, they click on 'cat door opener' and the app is loaded, they look at the 'wiring' schematic, buy all the subsystems and it works 2026-02-10 14:09:39 It happens in the professional world too - oh so many programmers out there just tinker-toying together gobs of code that they utterly do not understand. 2026-02-10 14:09:40 KipIngram, all these 'easy to use' systems are just retail channels to make money, thats why they exist 2026-02-10 14:10:11 Well, and I guess the upside is that they let a lot of people have fun who otherwise wouldn't be able to, and I can't fault that. 2026-02-10 14:10:30 sure, I think the most advanced science on earth these days is 'sales and marketing' 2026-02-10 14:10:42 :-) Indeed. 2026-02-10 14:11:00 You could see that theme in Mad Men. 2026-02-10 14:11:22 There whole business was to make people want things they didn't REALLY need and otherwise would never even have thought about. 2026-02-10 14:11:26 Their 2026-02-10 14:11:52 yeah, the 'cat door opener' app is a kit, they buy the door actuator, the wall wart, the box with the mcu and electronics and plug everything together, and this becomes "I made a cat door opener!" 2026-02-10 14:12:03 exactly! 2026-02-10 14:12:18 In one episode a beatnik (it was pre-hippie) type guy told the protagonist, very critically, that he "created want." And it was exactly true. 2026-02-10 14:12:39 in a way it's the same as buying a Ikea bookshelf ... 'I made a bookshelf' ! 2026-02-10 14:12:48 lmao... :-) 2026-02-10 14:12:50 Right? 2026-02-10 14:12:55 thats exactly right 2026-02-10 14:13:05 That's spot on - I'd never quite nailed it like that, though. 2026-02-10 14:14:48 we can see the direction tho ... 'chatgpt make me a database for my book library' ... hey I made my own book database ! 2026-02-10 14:14:48 In an urban fantasy series I read thee was an installment where a group of women were killing people using a magical ritual. The ritual was backed by some supernatural being. One of them bragged about her "power" to the protagonist (who himself was an actual wizard that actually HAD some power). He scornfully told her she had no power - she'd just put a coin in a cosmic vending machine. 2026-02-10 14:15:25 yeah, it's like cars ... 2026-02-10 14:16:51 people drive cars all the time, so they are familiar with them, top up the radiator, refil the fuel, no problem, I know my car! but when the engine dies on a backroad and they coast to a stop, they pop the hood and realise they dont really understand anything under it 2026-02-10 14:17:57 theyre bacically able to refuel, check the radiator (in older cars), check the battery, but thats it 2026-02-10 14:18:13 anything more and they need a mechanic 2026-02-10 14:19:38 and in 5 years I expect we will see a whole generation of AI dependent users who cant program and never will be able to 2026-02-10 16:42:29 Yeah, and it doesn't help that cars have become MUCH harder to work on than they used to be. 2026-02-10 16:42:58 heh, says the owner of the most awesome car EVER! 2026-02-10 16:43:49 my AWD audi is awesome, the best handling car I've ever driven, but it's a plane jane next to yours :) 2026-02-10 16:46:59 while it's only 150 (real) HP non aspirated, it accelerates crisply, but doesnt push me backwards like your turbo would but it's good for 125+ MPH 2026-02-10 16:47:31 and has brakes and suspension to suit, German engineering!