2022-05-29 11:39:19 As a step toward working out this bytecode / portable macro thing, I wrote a huge long line of bash this morning (greps, seds, etc.) that strips everything out of my nasm source except for actual machine code lines, removes white space appropriately, removes labels, and then sorts the whole output and removes duplicates. 2022-05-29 11:39:30 That wound up giving me 512 unique machine code lines. 2022-05-29 11:40:01 An awful lot of them, though, are conditionsal jumps to a label just past the next instruction or two - a single bytecode / macro that just skipped the next bit would replace all of those. 2022-05-29 11:40:44 And there are a lot of "immediate value moves," where the value is < 256. So those could all become one byte code with an operand byte after it. 2022-05-29 11:44:34 Plus, if I were trying to do the byte code thing, chasing the "smallest system possible," I'd just flat drop quite a lot of my primitives. 2022-05-29 11:45:07 That whole explosion of conditional returns and recurses is there for performance - it's much more than the "minimal" or even "customary" setup. 2022-05-29 11:45:41 Plus I have things like 1+! 2+! 4+! 8+!, etc. - all of which could just get dropped so long as +! itself is there. 2022-05-29 11:51:33 640+! ought to be enough 2022-05-29 11:51:43 :-) 2022-05-29 12:05:58 meanwhile pforth segfaults less when you don't try to dump the address of a primitive that is actually an enum 2022-05-29 12:27:52 I only used pforth in a Windows context. 2022-05-29 12:28:19 I don't recall running into anything like that, but it may have just been because I was doing something pretty specific with it. 2022-05-29 12:28:41 ' + 42 DUMP should make it go boom 2022-05-29 12:28:54 I tinkered with it to get it to read its input from a socket, and used it as a network accessible scripting interface to a pick and place machine. 2022-05-29 12:29:50 Client did business in used PnP's. He had a particular "workhorse model" that only offered a DOS interface, and he wanted to be able to offer his customers Windows support. 2022-05-29 12:30:18 Plus it had started to get hard to buy replacement controller boards for it, so he wanted a new controller board of his own. 2022-05-29 12:30:39 It happened to be a PnP that I was very familiar with from my previous job, so it turned into a nice project for me. 2022-05-29 12:30:59 He called my previous employer to see if they could help him - they couldn't, but they referred him to me. 2022-05-29 12:31:28 Well, actually the *employer* didn't - a guy that had been on my team and was still there did. 2022-05-29 12:32:50 It was this one: 2022-05-29 12:32:52 https://www.equipmatching.com/uploads/images/efh17kng4v.jpg 2022-05-29 12:33:28 At the prior job we'd mounted programming stations on its deck and used it for automated device programming. 2022-05-29 12:34:07 We'd dealt with its availability problems by building our own PnP. But that client was still out there trying to make a business out of dealing in the things. 2022-05-29 12:34:53 It had a really nifty vision system that let you image the part with a linear array of laser beams while you were carrying it toward its destination. 2022-05-29 12:35:28 The parts could wiggle around in the tape or tray pockets, so when you first picked them up you didn't know exactly how you were holding them. 2022-05-29 12:36:20 So you headed off toward the programming socket, and on the way you put the part package into that line of lasers and rotated it, and by processing the shadow information you could "precisify" things and by the time you arrived at the socket you did know how you were holding it. 2022-05-29 12:36:36 So you could then put it down just right, so that every pin was within 0.001" of the socket well for that pin. 2022-05-29 12:36:49 If you were off by more than that you'd bend the pins. 2022-05-29 12:37:31 The PnP company called that thing "laser align." 2022-05-29 12:37:44 It was a little U-shaped gadget mounted on the PnP head. 2022-05-29 12:42:30 That was some fun programming. :-) 2022-05-29 12:44:25 As you spun the part, the width of the "blocked beams" in that thing would change, and when you had it lined up with the beams you'd get a "notch" in the width pattern. At that point the width of the shadow was one of the dimensions of the package, and you knew you had it at a particular angle. 2022-05-29 12:45:05 After the whole process you wound up knowing the exact package dimensions and exactly where on the package the vacuum nozzle had grabbed it. 2022-05-29 12:50:37 Much higher performance than a table mounted upward looking camera, which required a trip over to the camera, and a dwell there while you imaged. 2022-05-29 12:51:05 But that was necessary for big parts that didn't fit in the laser align's beam width. 2022-05-29 13:12:42 That is interesting, so the lasers were used to save time by eliminating the trip to and dwell at the upward facing camera 2022-05-29 13:13:17 was this a multi or single component pickup head? 2022-05-29 13:14:52 and btw that image shows the thing without the components nests, at least in the front, no? 2022-05-29 13:15:01 KipIngram: ^ 2022-05-29 13:32:40 hey guys 2022-05-29 13:42:32 Hi tabemann. Zarutian_HTC: it was a single component pickup. 2022-05-29 13:42:43 The IVc was a somewhat low-end PnP. 2022-05-29 13:43:15 But yes - you got the idea just right on the laser align. It meant no wasted motion, beyond just moving the parts. 2022-05-29 13:43:39 And I could "refine" the target while I was in motion to the rought target, so it was about as efficient as it could be. 2022-05-29 13:44:04 We could program 1200 parts an hour with that thing, if the thorughput was limited by the PnP. 2022-05-29 13:44:14 Sometimes the programming time was the bottleneck, though. 2022-05-29 13:44:44 When we decided we had to build our own PnP, the boss told me he wanted 1400 parts per hour, and we managed that by using servomotors instead of stepper motors. 2022-05-29 13:45:40 My guys used to bypass the safety interlock on the PnP to save work time - I didn't get too wound up over on the IVc, because the steppers were pretty docile. I wouldn't let them do it on the servo machine, though - that damn thing could have taken someone's arm off. 2022-05-29 13:45:53 The interlocks made it so it wouldn't move if the doors weren't shut. 2022-05-29 13:47:02 Plus the IVc doors didn't *completely* block off the work space - it was possible to reach under them. We put fully enclosing doors on the servo unit. 2022-05-29 13:47:14 for some reason when you said "Windows" I thought "Windows 3.1" and then wondered why in hell you'd want Windows 3.1 to run a PnP machine 2022-05-29 13:47:51 Wel, it WAS in the early days of Windows, and I wondered the same thing, actually. I don't really remember the Windows history very well - it may have been XP. 2022-05-29 13:47:59 Whatever was "current" in 2003 or so. 2022-05-29 13:48:05 sounds like the Optima I ran at one place I worked 2022-05-29 13:48:20 the newest in 2003'd be XP IIRC 2022-05-29 13:49:07 2003'd be rather late for DOS 2022-05-29 13:49:19 it had servo motors instead of steppers but would sometimes spaz out and fling the head carriage towards one end 2022-05-29 13:50:00 the machine was old though and always been tempermental plus bad design choices 2022-05-29 13:50:32 Well, I guess that explains his desire to get away from DOS on the IVc. 2022-05-29 13:50:41 It had started to become a business blocker for him. 2022-05-29 13:50:59 the previous owners had installed a safety switch that cut power when 'head flinging' 2022-05-29 13:51:14 At that point the IVc wasn't made any more - that's why we'd had to make our own to start with. 2022-05-29 13:51:20 Several years earlier. 2022-05-29 13:51:33 But he said it was one of his workhorses, on the used market. 2022-05-29 13:51:39 He could get them, and he could make money on them. 2022-05-29 13:51:45 of course I'm of the view that anything that one wants to do Real Work on requires a Unix-like system, and Windows is mostly for types who can't wrap their brains around anything else (e.g. many electronics types apparently) 2022-05-29 13:52:00 tabemann: Amen, brother. 2022-05-29 13:52:17 well, that is changing 2022-05-29 13:52:18 Ouch. Sounds like a bad spaz out. 2022-05-29 13:52:41 ^ 2022-05-29 13:52:47 You'd hope so - surely Microsoft isn't just full of complete idiots. 2022-05-29 13:52:58 Sooner or later they'll get there, one would hope. 2022-05-29 13:53:23 yeah, I tried to debug it by recording the position sensor in that servo but never got any issue there 2022-05-29 13:53:40 I under Windows at work - in theory - but all the machines we actually work with on MR systems and "targets" that emulate them is on Linux, all our dev servers run Linux, and on Windows I do most of my actual work in WSL 2022-05-29 13:53:54 *I use Windows 2022-05-29 13:54:05 came across a pnp running on FreeBSD of all things 2022-05-29 13:54:53 PnPs are a really fun "embedded playground." Several different interesting technologies in play. 2022-05-29 13:55:09 the big question I have for anyone who wants to base a product on Windows is why would you ever want to marry your code to Windows Update? 2022-05-29 13:55:16 like I work in biomedical 2022-05-29 13:55:35 can you just imagine having to wait to scan a patient because the scanner has decided to do a Windows Update? 2022-05-29 13:55:38 Well, the big motivation to go Windows is all economic, not technological. 2022-05-29 13:55:51 Microsoft is big and they use their muscle to keep a lock on the market. 2022-05-29 13:55:55 I even wrote, in tcl, an format converter to convert pcb xml files into component placement file that the optima software understood 2022-05-29 13:56:08 And when a company is that big, it's no longer forced to "go along" with the direction market forces are steering things. 2022-05-29 13:56:22 They can push things the direction they want them to go, and it's always toward "more power for them." 2022-05-29 13:56:36 Small companies might WISH they could do that, but they can't - they have to respond to the market. 2022-05-29 13:56:49 And that's why small company capitalism is better than giant corporation capitalism. 2022-05-29 13:57:14 I think small player capitalism optimizes for the benefit of the customer population. 2022-05-29 13:57:20 Corporate level doesn't. 2022-05-29 13:57:50 Customers win when players are small - they get exploited when players are large. 2022-05-29 13:57:59 when I left that company the theory causing the head car spazes was that the leads from the servo encoder to a sensor processing board were getting emf spiked by the motor 2022-05-29 13:58:15 And our economy these days seems to be all about large players. 2022-05-29 13:58:38 Well, that sounds at least reasonable. 2022-05-29 13:58:45 Signal integrity problem. 2022-05-29 13:59:03 It is an environment where you have weak control signals and really strong "drive signals," so yeah. 2022-05-29 13:59:27 yeah, the issue was that the design of the machine was from 1978 or some such I could gather 2022-05-29 14:00:09 not a I2C or SPI bus in sight in that thing 2022-05-29 14:00:15 And usually on a PnP there's an "energy chain" they call it - that plastic chain t hing that carries all the signals from the stationary tabletop to the moving gantry pieces. 2022-05-29 14:00:22 So everything's in close proximity in there. 2022-05-29 14:00:27 well besides later hacked in additions 2022-05-29 14:00:57 what was weird is that at my last job our product could run just fine under Linux - I know that because internally we ran it on Linux - but our installers for it were designed for Windows only 2022-05-29 14:01:01 In close proximity over several feet of distance, all the way through the chain. 2022-05-29 14:01:45 So good cable design, and yes - proper protocol choice, is really important. 2022-05-29 14:02:18 to run it under Windows you had to just install the .jars for it alone, and then manually install it on a Linux machine running the appropriate web server (I don't remember which at the moment) 2022-05-29 14:02:28 I wanted to use some of the, I precived, upcomming machine downtime to start converting the thing over to OpenCAN 2022-05-29 14:03:20 of course, the company had always sold products for Windows and thus our customer base probably expected Windows products 2022-05-29 14:03:34 but no, a new customer, an university electronics theoritical type, was signed up instead 2022-05-29 14:05:07 a person that had never heard or seen any of the practices tought in the Grundeild RafiĆ°na courses at VMA or other tech trade schools here 2022-05-29 14:06:55 KipIngram: v grooved pcb platters with non rotational symmetric fidicuals are damn neat no? 2022-05-29 14:07:26 s/fidicuals/placed fidicuals/ 2022-05-29 16:44:27 I just saw https://efabless.com/open_shuttle_program and I wonder if it is a yearly thing? 2022-05-29 16:46:04 well it links to a few resources for chip design 2022-05-29 16:46:35 thinking about that BitGrid idea