00:00:00 --- log: started forth/20.03.26 00:13:11 nighto thanks for the chat Zarutian_HTC 00:20:32 --- join: xek_ joined #forth 00:52:06 --- join: mtsd joined #forth 00:52:10 --- join: dave0 joined #forth 01:04:12 --- quit: gravicappa (Ping timeout: 264 seconds) 01:04:33 --- join: gravicappa joined #forth 01:06:47 --- quit: _whitelogger (*.net *.split) 01:09:49 --- join: _whitelogger joined #forth 02:31:54 --- quit: WickedShell (Remote host closed the connection) 02:35:48 --- join: Bunny351 joined #forth 03:34:16 --- quit: dave0 (Read error: Connection reset by peer) 03:35:02 --- join: jsoft joined #forth 03:38:02 --- join: dave0 joined #forth 04:00:48 --- quit: mtsd (Ping timeout: 250 seconds) 04:02:46 --- quit: iyzsong (Remote host closed the connection) 04:03:12 --- join: iyzsong joined #forth 04:04:43 --- quit: cartwright (Read error: Connection reset by peer) 04:31:27 --- join: cartwright joined #forth 04:43:12 --- quit: jsoft (Ping timeout: 264 seconds) 05:16:59 --- join: dddddd joined #forth 05:38:41 --- join: jsoft joined #forth 06:23:54 --- quit: iyzsong (Ping timeout: 272 seconds) 06:41:50 --- join: [1]MrMobius joined #forth 06:41:53 --- quit: MrMobius (Ping timeout: 258 seconds) 06:42:07 --- nick: [1]MrMobius -> MrMobius 06:48:14 --- join: [1]MrMobius joined #forth 06:51:00 --- quit: MrMobius (Ping timeout: 264 seconds) 06:51:00 --- nick: [1]MrMobius -> MrMobius 06:57:10 --- quit: dave0 (Quit: dave's not here) 07:01:12 --- quit: tabemann (Ping timeout: 256 seconds) 07:06:34 --- join: xek__ joined #forth 07:09:48 --- quit: xek_ (Ping timeout: 240 seconds) 07:27:48 --- join: jedb_ joined #forth 07:28:18 --- quit: jsoft (Ping timeout: 260 seconds) 07:30:00 --- quit: koisoke_ (Ping timeout: 264 seconds) 07:30:01 --- quit: jedb (Ping timeout: 240 seconds) 07:31:47 --- join: koisoke joined #forth 08:14:02 --- quit: Zarutian_HTC (Ping timeout: 260 seconds) 09:00:49 --- join: Zarutian_HTC joined #forth 09:05:22 --- quit: dddddd (Remote host closed the connection) 10:13:07 --- quit: cartwright (Remote host closed the connection) 10:15:27 --- join: cartwright joined #forth 12:31:35 --- join: deesix_ joined #forth 12:33:35 --- quit: deesix (Ping timeout: 256 seconds) 12:58:52 --- join: WickedShell joined #forth 13:00:13 --- join: dddddd joined #forth 13:03:46 --- quit: deesix_ (Quit: leaving) 13:04:02 --- join: deesix joined #forth 14:16:42 --- quit: _whitelogger (Remote host closed the connection) 14:19:46 --- join: _whitelogger joined #forth 14:22:59 --- quit: _whitelogger (Remote host closed the connection) 14:26:03 --- join: _whitelogger joined #forth 14:28:45 --- quit: _whitelogger (Remote host closed the connection) 14:31:50 --- join: _whitelogger joined #forth 14:44:29 --- quit: gravicappa (Ping timeout: 256 seconds) 15:04:14 --- quit: xek__ (Ping timeout: 260 seconds) 15:10:43 --- join: dave0 joined #forth 16:13:25 --- quit: Bunny351 (Remote host closed the connection) 16:14:05 --- join: Bunny351 joined #forth 16:33:29 --- join: jsoft joined #forth 17:31:40 --- join: tabemann joined #forth 17:50:51 --- quit: dave9 (Ping timeout: 256 seconds) 17:51:55 --- quit: koisoke (Ping timeout: 250 seconds) 18:00:34 --- join: koisoke joined #forth 18:06:43 --- join: dave9 joined #forth 18:31:37 hey guys 18:31:53 hey tabemann 18:32:04 hey tabemann how goes the Forth ? 18:32:08 hey MrMobius 18:32:47 still trying to figure out interrupts 18:32:56 the problem I have is enabling interrupts 18:33:06 I'd like to take this opportunity to say that this forum is the best for tech info and real world programming I have seen yet! 18:33:20 because almost all the examples I see use this damn HAL API 18:33:26 tabemann, it starts with the NVIC 18:33:34 whereas I want to see code that directly talks to the hardware 18:33:40 I know that 18:33:49 which bit do so I SETENA? 18:33:57 *which bit do I SETENA? 18:33:59 tabemann, yeah, thats why I made my interrupts page, everywhere else it's "use HAL" 18:34:41 to find the right bit for setena you have to look in the NVIC section of your technical pdf 18:34:49 and I know how to enable an EXTI channel with SETENA 18:35:03 but the thing is which EXTI channel? 18:35:04 this area initally caused me a LOT of confusion, for a long time 18:35:12 and which pins on which EXTI channel? 18:35:37 not all interrupts use exti 18:35:45 what about USART? 18:36:03 lets work thru your particular need ? 18:36:07 I thought that configurable GPIO interrupts were EXTI 18:36:15 thats true 18:36:32 but lets start at your usart ? 18:36:37 sure 18:36:49 you will have a few different configs for this 18:37:08 what interrupt will you use for the usart ? 18:37:15 I know how to configure it to capture RXE AND TXNE 18:37:28 that's the easy part 18:37:55 a matter of setting bits on USART2_CR1 18:38:40 and I know USART2 is configured to use GPIOD pins 5 and 6 18:39:59 via AFx 18:40:06 ok, so far so good 18:42:09 so given that, what interrupt do I need to set? 18:42:57 now I cant locate "RXE" or "TXNE" for the L476 but if you have that under control we can move on 18:43:24 tabemann, there is a large choice of interrupts for USART2 that I can see 18:44:16 yes, there are quite a few 18:44:34 what I'm concerned with is: 18:44:41 1) which vector do I use 18:44:42 and 18:44:43 this page deals with usart interrupts 18:44:45 1374/1880 RM0351 Rev 6 18:44:53 and the next page 18:44:55 2) how do I enable the interrupt on that vector 18:45:05 first you must choose a interrupt 18:45:15 so we can work thru a example 18:47:11 setting up RXEIE and TXNEIE is simple; my issue is doing what the HAL does with HAL_EnableIRQ() or whatever that's called 18:48:26 where I saw people just feeding things named something like "IRQ_USART1" into that function 18:49:28 I have no "RXEIE" or "TXNEIE" (if you want me to check the actual bitfields) 18:50:25 USART2_CR1_RXEIE 18:50:32 USART2_CR1_TXNEIE 18:50:35 the problem with using C bitfield names is that most online examples are not complete, ambiguous or plain wrong, it's a soul destroying experience 18:51:53 anyways 18:51:57 I only have a "USART2_CR1_TXEIE" for the L476 18:52:36 and I have a "USART2_CR1_RXNEIE" for it 18:52:40 wait I got those backwards 18:53:09 anyways 18:53:54 now that I've enabled USART2_CR1_TXEIE and USART2_CR1_RXNEIE, what do I need to do to enable some interrupt, any interrupt for it 18:54:06 for instance, do they use an EXTI 18:54:33 (I found some example code online about how to configure EXTIs) 18:54:56 : USART2_CR1_TXEIE %1 7 lshift USART2_CR1 bis! ; \ USART2_CR1_TXEIE interrupt enable 18:55:16 : USART2_CR1_RXNEIE %1 5 lshift USART2_CR1 bis! ; \ USART2_CR1_RXNEIE RXNE interrupt enable 18:55:32 yeah, I've got those 18:55:46 i know, but we need to see what they do 18:56:34 USART2_ISR_TXE is set when USART2 is ready to transmit 18:56:51 USART2_ISR_RXNE is set when USART2 has data to receive 18:57:20 USART2_CR1_RXNEIE enables "Receive data register not empty (data ready to be read) RXNE" and "Overrun error detected ORE" 18:57:22 setting USART2_CR1_TXEIE enables an interrupt for when USART2_ISR_TXE becomes true 18:58:13 setting USART2_CR1_RXNEIE enables an interrupt for when USART2_ISR_RXNE becomes true 18:59:35 USART2_CR1_TXEIE enables Transmit data register empty flag TXE 19:00:14 what do you wish to use as your example ? 19:00:36 I want to put the MCU to sleep with WFI 19:00:51 youve enabled three sources for interrupts which is 2 more than we want for a example 19:00:55 I want it to wake up when the user presses a key or becomes ready to send more dat 19:01:07 I know that, but youre a LONG way from being able to do that 19:01:25 ok, wake up on a keypress ... good 19:02:45 for that you'll need to use "Receive data register not empty (data ready to be read)" I suppose 19:03:10 I have never done this myself, so Im assuming here 19:03:40 but it's also easy to test 19:04:27 the key thing here is this - now that I've set USART2_CR1_TXEIE and USART2_CR1_RXNEIE, how do I translate these into actual interrupts that I can handle? 19:04:40 because everything I read is unclear on this 19:04:44 either they talk about HAL 19:04:51 or they talk about NVIC and EXTI 19:05:24 but they don't talk about having a USARTx and wanting it to raise interrupt y 19:07:15 thats why i suggested we work thru a single example, a better one would have been a GPIO button press interrupt as theyre less complex, but also different 19:07:45 you appear to be looking for a one line answer to this, I don't have one 19:07:57 not one line 19:08:10 I know how to use interrupts with forth, I have code showing that online 19:08:20 I assume it involves SETENA 19:08:25 which I know how to use 19:08:29 but of course, your need is different to what I have working so far 19:08:48 I think it likely involves an EXTI 19:08:50 but I don't know offhand 19:08:51 it does, and as critical as SETENA is, thats just one part 19:09:10 and if it involves an EXTI 19:09:12 --- nick: jedb_ -> jedb 19:09:17 can I choose any EXTI? 19:09:27 when for the part where I specify pins for an EXTI 19:09:38 any that your hardware allows 19:10:00 do I use the same pins that are used to configure the USART originally? 19:10:19 and how do I select GPIOD rather than some other GPIO? 19:10:37 because in the example code I see I see how to select pins 19:10:44 but I see no mention of GPIOs 19:12:32 I've used EXTI1 and EXTI12 together so far 19:13:11 there is a drawing 19:13:29 each EXTI is tied to a pin 19:13:49 EXTI-1 is for use with any GPIO pin-1 19:14:02 EXTI-2 is for use with any GPIO pin-2 19:14:05 and so on 19:14:53 it's shown in my page: https://mecrisp-stellaris-folkdoc.sourceforge.io/interrupts.html#interrupts 19:17:18 okay, my MCU has 5 EXTI's 19:17:48 yet the code I got from matthias refers to pins 5 and 6 on port D 19:20:37 like all stm32 you will have 16 exti pin choices 19:23:03 looking thru document DS10198 Rev 8 June 2019 19:23:31 page 92 shows Table 17. Alternate function AF0 to AF7(1) 19:24:23 page 95 is what you need 19:25:11 oh I see 19:25:19 it shows that PD5 and PD6 are USART2 TX/RX with AF7 19:30:34 yeah I see that 19:31:07 how does this relate to interrupts? 19:31:22 (sorry for all the questions - this stuff is just black magic to me) 19:32:23 is AF7 associated with a particular interrupt? 19:33:05 questions are fine, I'm happy to answer all your hardware questions where I know the answer 19:33:28 no, you asked "yet the code I got from matthias refers to pins 5 and 6 on port D" 19:34:00 and my reply was for that statement 19:34:15 yeah, I understand that now 19:43:15 --- join: boru` joined #forth 19:43:18 --- quit: boru (Disconnected by services) 19:43:21 --- nick: boru` -> boru 19:47:15 tp: are those interrupt vector where pc jumps to or where pc is set to? 19:49:52 Zarutian_HTC, theyre locations containing the address of the 'interrupt handler' 19:50:04 for each interrupt 19:50:34 ah, I see. Basically proper interrupt vectors 19:51:07 yeah, thats what I was trying to say :) 19:51:25 but as a Forth user I'm spoilt 19:51:31 and then there is the interrupt enable bitmap. That is which interrupt is enabled 19:51:51 um ... the enabling is a bit all over the place 19:52:40 there is the overall system interrupt enable, the peripheral interrupt enable(s), the specific interrupt enable 19:52:57 and still more, send no money! 19:53:28 i guess there is one master interrupt enable that when set makes it so the other interruprs selected can occur 19:53:31 then there is the NVIC which has overalll control 19:53:45 Id say one master and sub masters 19:54:07 it's not trivial, Ive been working on understanding this since 2016 19:54:13 back 19:54:21 one little hint 19:54:28 on Cortex-M 19:54:38 Zarutian_HTC, then there are the interrupt priorities 19:54:44 the interrupt vectors are the destination address plus 1 19:55:09 because the lowest bit of addresses jumped to indicates that the address is for Thumb code 19:55:17 i was wondering what the EXTIs were about but they seem to have the same function as pin change interrupt on atmega328p 19:55:26 and because Cortex-M only supports Thumb 19:55:35 if the lower bit is clear, the chip locks up 19:55:50 tabemann, I've been spoilt, I just use the Mecrisp-Stellaris supplied words 19:56:11 Zarutian_HTC, I guess thats accurate 19:56:31 the extis can trigger on level and change 19:58:21 question 19:58:41 here is a example from one of my working programs it's the interrupt setup and handler for the user push button on a disco board 19:58:43 how does it work, since on STM32L476 there are only 5 EXTI vectors but 16 EXTIs? 19:58:43 : pb.interrupt.handler ( -- ) 19:58:44 154 line.0.mask \ prevent retriggering until fully handled 19:58:44 155 EXTI_PR_PR0 \ clear trigger 19:58:44 156 C F cr \ read temperatures 19:58:44 157 ; 19:58:45 158 19:58:47 159 : pb.interrupt.init ( #6 ) 19:58:49 160 0 AFIO_EXTICR1_EXTI0 \ line PA0 19:58:51 161 line.0.unmask \ unmask line 0 19:58:53 162 EXTI_RTSR_TR0 \ rising trigger in line 0 19:58:55 163 ['] pb.interrupt.handler irq-exti0 ! \ link exti0 to pb.interrupt.handler 19:58:57 164 %1000000 NVIC_ISER0_SETENA \ enable interrupt #6 19:58:59 165 ; 19:59:47 tabemann, i dont understand that statement 20:00:09 there's only 5 EXTI interrupt vectors 20:00:19 yet there are 16 EXTI's 20:00:23 do you have a source for that ? 20:00:58 that linked document 20:01:39 page 396 of RM0351 20:02:00 seem that many 'pins' share the same exti interrupt 20:03:05 6 13 settable EXTI0 EXTI Line0 interrupt 0x0000 0058 20:03:05 7 14 settable EXTI1 EXTI Line1 interrupt 0x0000 005C 20:03:05 8 15 settable EXTI2 EXTI Line2 interrupt 0x0000 0060 20:03:05 9 16 settable EXTI3 EXTI Line3 interrupt 0x0000 0064 20:03:05 10 17 settable EXTI4 EXTI Line4 interrupt 0x0000 0068 20:03:17 probably event on any of the triggers that interrupt so one has to read the pins to find out which changed since last 20:03:33 Zarutian_HTC, I think youre right 20:05:25 it is fo'sure that these chips have lot of interrupts 20:06:30 i have only 3 choices on my f0 20:06:34 5 12 settable EXTI0_1 EXTI Line[1:0] interrupts 0x0000 0054 20:06:34 6 13 settable EXTI2_3 EXTI Line[3:2] interrupts 0x0000 0058 20:06:34 7 14 settable EXTI4_15 EXTI Line[15:4] interrupts 0x0000 005C 20:07:32 but there are more 20:07:35 The remaining lines are connected as follow: 20:07:35 · EXTI line 16 is connected to the PVD output 20:07:35 · EXTI line 17 is connected to the RTC Alarm event 20:07:35 · EXTI line 18 is connected to the internal USB wakeup event 20:07:35 · EXTI line 19 is connected to the RTC Tamper and TimeStamp events 20:07:36 · EXTI line 20 is connected to the RTC Wakeup event (available only on STM32F07x 20:07:38 and STM32F09x devices) 20:07:42 · EXTI line 21 is connected to the Comparator 1 output 20:07:44 · EXTI line 22 is connected to the Comparator 2 output 20:07:46 · EXTI line 23 is connected to the internal I2C1 wakeup event 20:07:48 · EXTI line 24 is reserved (internally held low) 20:07:50 · EXTI line 25 is connected to the internal USART1 wakeup event 20:07:52 · EXTI line 26 is connected to the internal USART2 wakeup event (available only on 20:07:54 STM32F07x and STM32F09x devices) 20:07:56 · EXTI line 27 is connected to the internal CEC wakeup event 20:07:58 · EXTI line 28 is connected to the internal USART3 wakeup event (available only on 20:08:00 STM32F09x devices) 20:08:02 · EXTI line 29 is reserved (internally held low) 20:08:04 · EXTI line 30 is reserved (internally held low) 20:08:06 · EXTI line 31 is connected to the VDDIO2 supply comparator output (available only on 20:08:08 STM32F04x, STM32F07x and STM32F09x devices 20:08:22 Zarutian_HTC, it sure seems so, but if you want to see a LOT, checkout the risc-v GD32VF103! 20:08:55 one thing I noticed mcu design wise is that an hardware dual stackmachine and vectored interrupts quite compliment each other 20:09:21 I remember thinking using just the ONE interrupt was a big thing on a z80 back in the late 70's! 20:10:00 in those an interrupt is just an unexpected word call 20:10:50 oh, gods I hate single vector interrupts the isr becomes massive 20:11:02 I guess it would 20:11:25 I have never used a interrupt until this year, and then only on cortex-m0 and m3 20:11:35 I always used polling 20:11:36 and slows down the interrupt handling 20:12:49 but now I have used up to 3 interrupts in the one Forth proj and it worked fine, tho I did need to change the priority 20:13:56 if you read the embedded forums people are always warning "keep that interrupt handler SHORT or ELSE!" 20:14:02 the priority arbites between different interrupt that occur at same time? 20:14:33 I always laugh, that may have been true in 1975, but my MCU's are 75+ times faster now 20:14:41 Zarutian_HTC, correct 20:15:27 then you havent had to deal with an interrupt storm 20:15:50 Zarutian_HTC, no, I'm new to interrupts 20:16:35 Zarutian_HTC, plus I'm trying to use a scheduler instead of interrupts as Im aware of some of the issues 20:17:25 i will continue to use the systick interrupt as thats the source of my timing 20:18:03 I'm planning on just using interrupts as a wakeup 20:18:21 tabemann, your systick is polled ? 20:18:22 I do not know with stm but with ti chips at least one instruction from the main program exexcutes before next interrupt is serviced. 20:18:25 aside from SysTick obviously 20:18:37 tp: I mean aside from systick 20:19:01 Zarutian_HTC, there are 6 system interrupts with the lowest priorities ( 0 - 5) 20:19:22 --- join: iyzsong joined #forth 20:19:30 Zarutian_HTC, after that every source has a default priority which can be changed 20:19:46 if your isr is short then even under an interrupt storm the device can perform degradeably 20:20:33 I'm still a bit weary of interrupts and for what I do, a fixed task time of a couple of milliseconds is usually heaps 20:21:31 and I like interrupts to handle unsync gpio events, such as a button press 20:21:51 I usually have isrs just update variables or flags that then get polled from the main loop 20:22:09 then there are tools such as stopping all interrupts while the current one is being handled etc 20:22:46 Zarutian_HTC, yeah, I have used that technique also 20:23:13 Zarutian_HTC, I guess thats the shortest ISR one can have ? 20:23:28 on sleeping chips I use the interrupt to wake up the thing 20:23:59 which is what tabemann wants to do 20:24:18 he wants to use the USART RX data to wwake up the chip 20:24:53 on the MSP430 it's a easy thing to do. on cortex-m, not so much 20:25:28 yebb: : systick_isr 1 systick_counter !+ rfi ; \ basically 20:25:55 yeah 20:26:20 Zarutian_HTC, but the msp430 is pretty slow, 16Mhz clock ? 20:26:30 for wakeup just put wakeup before the rfi 20:26:49 too easy! 20:27:23 16 MHz is plenty fast for many mcu applications 20:27:40 yes, so right 20:27:52 Ive become used to 75MHz minimum 20:28:04 once, 1MHz was plenty for me 20:28:40 if I need much beefer processing I usually do it on diffrent chip 20:29:37 that is have slowish main mcu then a faster coprocessor with its own memory on the side 20:30:06 well thats only because you actually know what youre doing! :) 20:30:34 the MSP430 is certainly the master of easy low power 20:30:38 means that one can have it more specialized or fitting to the application 20:31:40 I havent lived in that world myself 20:32:01 I have my stock of MCUS and make them fit my application 20:32:17 for me it's all about my embedded tooling 20:32:38 the mcu type is last for me 20:33:04 if i cant properly debug the chip, I dont care how much betetr it is 20:33:38 I seem to be one of the few in this regard tho 20:34:29 well, the handy thing is that one can use something like msp430 for the always on part and a cortex-m or dsp or what have you for the calculation heavy stuff 20:34:38 lucky I'm not designing hundreds of millions of cellphones hey ;-) 20:35:25 for me always cortex-m is better as I never need low power, but love having 33 peripherals to choose from 20:35:30 sometimes it pays off to use the same part for both main and coprocessor 20:35:42 even if it's a horrible chip compared to the MSP430 20:36:24 same part type that is 20:36:25 Ive never needed a copro, the f0 does fixed point for me in plenty of time 20:36:48 but youre at the high end, Im right at the bottom 20:37:13 someone will come to me needing a controller for some machine, perhaps to detect a jam or so on 20:37:27 eh, I rather do sensor integration with a dedicated processor 20:37:48 it's a massive problem for them, they just want it to go away 20:38:24 and it's always a mechanical problem, so really slow 20:38:56 Zarutian_HTC, I do that as well, but at the very low end 20:38:59 hehe 20:40:01 sure, I have never understood why some designers are always so damn stingy with simple sensors like limit switches or rotary tick encoders 20:40:32 stingy, how ? 20:41:08 the sooner the machine can detect that something is wrong the better 20:41:18 I think a lot of designers are inexperienced or unmotivated 20:41:31 too damn few of them in the machine 20:41:44 ahh, not enough sensors on complex and expensive machines ? 20:42:05 i guess that sensors are also a source of problems 20:42:21 often a stoppage is caused by a faulty sensor in my experience 20:42:37 yes and plenty of assumptions on that mechanical side always works 20:43:00 but I agree, I also think everything needs more sensor`s 20:43:12 I did get to work in sensor heaven once 20:43:40 when I was doing sensor maintenance on submarines, the worlds biggest money pit 20:44:04 * Zarutian_HTC has serviced and run complex mechatronic machines 20:44:50 Zarutian_HTC, same, plus worled in R&D most of my life building prototypes for engineers 20:45:44 Zarutian_HTC, I have a lathe and a milling machine plus a pretty good mechanical workshop, I can basically build a solution for most things 20:46:21 Zarutian_HTC, at age 66 and building gear since I was a kid, I have now forgotten about a lot of the stuff Ive designed and built 20:46:40 and what is up with the software for some of the machines? sometimes I want to be able to single step or slow run the machine to see where the problem is 20:47:33 Zarutian_HTC, about 30 years ago a man came to my door with a interesting electronic device and asked for a quote to repair it 20:48:01 I asked it what it did, where it came from and he looked at me oddly ... 20:48:01 what did that device do? 20:48:18 he said, "it came from you, you made it for me" 20:48:28 I cant remember 20:49:22 I always used a logic analyser in the past but that stopped being useful with the PIC 20:49:23 aah, this is why makers mark or uuid for documentation tie in is so handy 20:50:23 the PIC was a turning point for me, I made some decent stuff and money from it but realised that my ability to diagnose it (C lang) was just not good enuf 20:50:59 at ar`ound that time I moved to the other side of Australia and started a Wifi business and my embedded stopped for 15 years 20:51:04 put the final documentation in various public places and when you google the uuid then you might have an fighting chance to find it again 20:51:26 i keep excellent doc now so thats no problem 20:52:45 so in 2014 I started getting back into embedded design and began looking for a very good design system that could also do in depth analysis 20:52:59 one fun story i heard was from a reverse engineer that found it odd that it had an oversized flash chip for what the device did 20:53:29 k 20:53:58 turned out that it used to have a smaller flash chip but that part got duscintinued 20:54:12 discontinued* 20:54:19 i find that the size of my code to do product fault testing etc is usually about the same size of the program 20:54:45 sounds reasonable 20:54:51 like always the first thing he did was to dump its conents 20:55:25 which is often locked or encrypted 20:56:17 the first two to five percent of the chip was the actual code to use and run diagnostics on the device 20:56:42 well it wasnt locked or encrypted 20:56:52 and the rest was a copy of the bible ? 20:57:05 a gif of the designer ? 20:57:25 a sound byte that said 'get out of my code!" ? 20:58:13 the rest of the chip? it contained a heavily compressed tar file with all the project and design files, user and service manuals included 20:59:37 note this was in a device with expected service lifespan if 30 to 50 years 21:00:09 s/if/of/ 21:00:09 wow, thats awesome 21:00:36 i dont get much into my 64kB m0's :) 21:01:05 I have great respect for whoever made that project 21:01:40 the item I have forgotten about was probably analog I have made a LOT of gear with no MCU 21:01:52 I used to specialise in PSU's 21:02:16 but basically I made anything that was electronic 21:02:21 note that this was on a 4 mb flash chip and all the files were in some ascii ish based formats so it compressed well 21:02:36 wow thats even cleverer! 21:02:55 and ascii means it can be read 21:03:12 proving the compressed tar file can still be read 21:03:50 or at least figgured out. the manuals were .eps files with diagrams but not bitmaps 21:04:32 well it had a very distinctive 'magic' at the start of it 21:04:47 than again in 50 years will the data still be there in the flash chip ? 21:05:11 it sounds like a awesome desinher was involved 21:05:25 he has my respect! 21:05:53 I thing the designer of the thing had been bitten by bad and none existant documentation on a similarly long service life device 21:06:08 sounds reasonable 21:06:43 tp, random question but did you ever run across the RCA 1802 in your time? 21:06:57 well, why shouldnt it? the chip was treated like rom in the circuit 21:07:01 MrMobius, I owned one 21:07:10 I bouth 2 of the chips iirc 21:07:13 bought 21:07:32 but I didnt get past reading the tech doc, I didnt like them 21:07:45 1802? wasnt that a quad op amp chip? 21:07:59 I've no idea where they are now, probably thrown away years ago to make room for chips I did like 21:08:14 no, CDP1802 was a cmos cpu 21:08:35 oh that. And I guess cisc based 21:08:55 dunno, was too strange for me 21:09:03 probably as horrible as Razon chips 21:09:10 I was already in love with the mc6800 by then 21:09:38 now that is an orthogonal arch if i ever saw one 21:09:43 they cdp1802 was also avail in rad hardened, so was used for space projects 21:09:47 ya 1802 is strange and takes a lot of cycles to do anything 21:10:01 quirky thing though and kind of interesting 21:10:10 it was one of the first cmos mcu's iirc 21:10:34 what kind of system did you have it in? 21:10:59 tp: I thought most rad hard mcus in use are RTX 2010 which is a dual stack machine 21:10:59 MrMobius, i had it in a special 'plastic parts draw' system ;-) 21:11:33 Zarutian_HTC, I'm sure they are, but the 1802 was also avail in rad hardened 21:11:51 probably only $10,000 extra 21:12:51 i dont even want to revisit the 1802, Im still wierded out from the 70's when I read the doc 21:13:34 wish I still had the chips to send to someone who really wanted one to study 21:13:43 hehe. i have some of those systems :P 21:13:55 the 'wierd' ones ? 21:14:48 MrMobius, do you have a old Victorian museum under your house, full of old systems in perfect working order by any chance ? 21:15:14 i wouldnt have to work if I did 21:16:07 once when I was a teenager I visited a old DECA radio positioning system, it was a huge building, made of varnished wood and with polished brass, valves and busbars, it left a impression 21:16:51 MrMobius, sure you would, private collectors museums cost money! 21:17:20 oh it was a operational DECA building 21:19:06 back 21:19:09 guess what 21:19:18 there's a dedicated USART2 interrupt 21:19:23 I feel so incredibly stupid now 21:20:17 why, youre clearly NOT stupid 21:20:24 I missed it because in matthias's vector file it's not listed 21:20:39 it's a massive challenge for a software person to do hardware 21:21:15 (I wish that software people would also bear in mind that the reverse is also true) 21:21:45 well, matthias hates ARM, I dunno why he ever wrote Mecrisp-Stellaris 21:21:53 do what I do, read the full datasheet through once 21:21:53 but Im glad he did 21:22:12 Zarutian_HTC, excellent tip 21:22:49 i dont need it tho, because I love datasheets and reread them for enjoyment 21:23:05 but then Im a tech 21:23:55 Im not a tech because it was the only job I could get, at age 9 I knew I wanted to do electronics for the rest of my life 21:24:04 it's a obsession for me 21:24:16 not fully comprehend or anything just page through it like you are reading the documentation of an software library yoy havent used for 21:24:57 exactly, but after that tabemann will recognise the words later on 21:25:17 and have some recollection of where he read it before 21:25:20 back 21:25:39 similar for me. I would still geek out on this regardless of how well paid it is 21:27:07 if I wanted to be rich then I would be doing quatative analysus on second order finanical dervitives 21:27:31 or a lawyer or politician if you have no scruples ? 21:27:45 which I find boring as hell 21:28:02 and cry yourself all the way to the bank every day ? 21:29:12 but electronics has a magic when done very well, like a perfect program, who can resist that ? 21:29:37 well, I once caught out a lawyer trying to pull a stunt in a contract he wrote. I had been asked to read it over to find any obvious logic flaws 21:30:01 I always love building stuff and the moment that something just works 21:30:19 I find it frustrating when I can't fix bugs, but just love it when I do fix them 21:30:49 tabemann, I can relate 21:31:12 Zarutian_HTC, what a devious bastard 21:32:02 why had I been asked to read it over? well I had debugged fiendishly convoluted program for the same guy 21:33:02 arent most programs fiendlishly convoluted ? 21:33:44 when you need a four dimensional koch map then yes 21:35:19 that thing had accrued special case upon special case with exceptions that in turn had exceptions 21:36:20 is that map some kind of ancient curse ? 21:39:58 --- join: gravicappa joined #forth 21:40:35 sorry karnaugh map 21:41:08 Ive heard of them 21:41:34 but I'm not academically inclined 21:41:38 * Zarutian_HTC always conflates the two probably due to koch snowflake fractal 21:42:36 I'll ask Matthias if the "koch snowflake fractal" is named after him ;) 21:42:36 hes got a great sense of humour 21:43:25 it is a penile thing even it looks kewl 21:44:21 well, those maps are handy wen figguring out logic 21:45:10 oh! 21:46:02 helps with simplyfing it 21:46:21 doesnt look like much fun 21:48:33 it is dreary as hell 21:50:22 but sometimes it can be usefull 21:50:55 too abstract for me 21:51:10 ill bbl, thanks for the chat 21:52:27 time for me to gi 21:52:43 go to bed good night 22:05:17 --- quit: proteus-guy (Ping timeout: 240 seconds) 22:50:46 --- quit: cartwright (Ping timeout: 240 seconds) 23:05:12 --- join: cartwright joined #forth 23:24:18 --- quit: jsoft (Ping timeout: 250 seconds) 23:37:00 --- join: jsoft joined #forth 23:59:59 --- log: ended forth/20.03.26