1 00:00:06,320 --> 00:00:11,499 [Music] 2 00:00:15,839 --> 00:00:20,000 welcome back to the open hardware mini 3 00:00:17,520 --> 00:00:23,199 conf so for the next session we have 4 00:00:20,000 --> 00:00:24,720 julian goodwin who is a veteran of open 5 00:00:23,199 --> 00:00:27,439 hardware mini conf he's been coming 6 00:00:24,720 --> 00:00:30,000 along for years we've seen him before 7 00:00:27,439 --> 00:00:31,199 and this particular subject is something 8 00:00:30,000 --> 00:00:32,880 that is 9 00:00:31,199 --> 00:00:34,239 very very interesting to me as you would 10 00:00:32,880 --> 00:00:36,399 have seen in my earlier talk i had the 11 00:00:34,239 --> 00:00:37,840 onscreen display for my multimeter i 12 00:00:36,399 --> 00:00:39,120 love the idea of connecting test 13 00:00:37,840 --> 00:00:41,360 instruments 14 00:00:39,120 --> 00:00:44,800 to the network and automating things 15 00:00:41,360 --> 00:00:45,600 so julian please take it away 16 00:00:44,800 --> 00:00:48,640 hi 17 00:00:45,600 --> 00:00:51,840 so yeah i'm julian by day i do tech 18 00:00:48,640 --> 00:00:54,160 operations at google uh 19 00:00:51,840 --> 00:00:56,879 i am once again doing networking 20 00:00:54,160 --> 00:00:58,719 by night i'm a bit of a time nut i 21 00:00:56,879 --> 00:01:00,559 literally use an atomic clock as a foot 22 00:00:58,719 --> 00:01:02,399 rest uh i 23 00:01:00,559 --> 00:01:04,559 have a cesium clock that sits under my 24 00:01:02,399 --> 00:01:05,519 desk at work 25 00:01:04,559 --> 00:01:08,159 uh 26 00:01:05,519 --> 00:01:11,040 basically being a foot warmer uh my 27 00:01:08,159 --> 00:01:13,600 house atomic standard here at home is 28 00:01:11,040 --> 00:01:16,320 under my desk at home 29 00:01:13,600 --> 00:01:19,119 i'm very slowly designing my own ntp 30 00:01:16,320 --> 00:01:20,799 server from the chip level up 31 00:01:19,119 --> 00:01:23,920 a few years ago 32 00:01:20,799 --> 00:01:25,119 at lca 2019 i gave a talk on 33 00:01:23,920 --> 00:01:27,119 designing the 34 00:01:25,119 --> 00:01:28,880 spc the single board computer 35 00:01:27,119 --> 00:01:30,479 uh and getting that all manufactured and 36 00:01:28,880 --> 00:01:32,479 at the moment i'm designing the 37 00:01:30,479 --> 00:01:33,439 digitally controlled ivanized oscillator 38 00:01:32,479 --> 00:01:35,119 for it 39 00:01:33,439 --> 00:01:36,640 because i actually want to do something 40 00:01:35,119 --> 00:01:38,640 a bit better than the original prototype 41 00:01:36,640 --> 00:01:40,159 i did i've also 42 00:01:38,640 --> 00:01:42,479 done stuff and continue to do stuff with 43 00:01:40,159 --> 00:01:44,799 linux australia do some photography do 44 00:01:42,479 --> 00:01:45,600 various other things 45 00:01:44,799 --> 00:01:47,520 so 46 00:01:45,600 --> 00:01:49,439 automated test equipment let's kick 47 00:01:47,520 --> 00:01:51,119 right in 48 00:01:49,439 --> 00:01:52,079 early digital test equipment we're 49 00:01:51,119 --> 00:01:55,439 talking 50 00:01:52,079 --> 00:01:57,280 late six uh well late 50s early 60s 51 00:01:55,439 --> 00:02:00,000 through the 60s 52 00:01:57,280 --> 00:02:01,840 started to have pins for iowa's 53 00:02:00,000 --> 00:02:03,200 environments major research labs 54 00:02:01,840 --> 00:02:05,280 universities were starting to get 55 00:02:03,200 --> 00:02:07,600 computers they were usually just simple 56 00:02:05,280 --> 00:02:09,840 parallel bcd 57 00:02:07,600 --> 00:02:11,840 buses for data with individual pins for 58 00:02:09,840 --> 00:02:13,360 control and users would provide their 59 00:02:11,840 --> 00:02:14,319 own interface 60 00:02:13,360 --> 00:02:16,879 that's 61 00:02:14,319 --> 00:02:19,760 off an old piece of hp kit that i can't 62 00:02:16,879 --> 00:02:19,760 even remember what it is 63 00:02:20,280 --> 00:02:28,239 then uh released in 1972 agilent 64 00:02:25,360 --> 00:02:29,440 hp keysight choose your name 65 00:02:28,239 --> 00:02:31,680 uh created 66 00:02:29,440 --> 00:02:33,360 the hp interface bus which then became 67 00:02:31,680 --> 00:02:36,319 the general purpose interface bus and 68 00:02:33,360 --> 00:02:39,760 then got standardized as ieee 488 which 69 00:02:36,319 --> 00:02:42,800 is a multi-drop serial bus it's about 70 00:02:39,760 --> 00:02:46,000 eight megabit absolute peak but 71 00:02:42,800 --> 00:02:48,160 really don't try and do that 72 00:02:46,000 --> 00:02:49,599 the connector stacks 73 00:02:48,160 --> 00:02:51,200 it's a bit weird you can sort of do star 74 00:02:49,599 --> 00:02:53,760 topology or bust 75 00:02:51,200 --> 00:02:56,080 a straight bust apology 76 00:02:53,760 --> 00:02:57,680 don't try and get too fancy 77 00:02:56,080 --> 00:02:59,760 if you try and stack four connectors on 78 00:02:57,680 --> 00:03:01,599 top of each other you'll end up with a 79 00:02:59,760 --> 00:03:03,360 real mess because those are not small 80 00:03:01,599 --> 00:03:05,280 connectors 81 00:03:03,360 --> 00:03:06,800 uh 82 00:03:05,280 --> 00:03:08,959 commands uh 83 00:03:06,800 --> 00:03:10,400 new line terminated ascii 84 00:03:08,959 --> 00:03:12,400 it is still extremely common on 85 00:03:10,400 --> 00:03:15,040 montessori this is a 50 year old 86 00:03:12,400 --> 00:03:17,440 standard this year 87 00:03:15,040 --> 00:03:20,560 brand new test equipment designed 88 00:03:17,440 --> 00:03:22,159 released comes out with gpib 89 00:03:20,560 --> 00:03:24,799 because it is the standard 90 00:03:22,159 --> 00:03:27,280 they've got more modern interfaces but 91 00:03:24,799 --> 00:03:28,560 the old stuff still exists and 92 00:03:27,280 --> 00:03:29,840 uh 93 00:03:28,560 --> 00:03:31,920 in that era 94 00:03:29,840 --> 00:03:34,080 it was actually used as an interface for 95 00:03:31,920 --> 00:03:35,519 hard drives tape drives etc on hp and 96 00:03:34,080 --> 00:03:37,360 commodore computers although the 97 00:03:35,519 --> 00:03:40,080 commodore variant is not 98 00:03:37,360 --> 00:03:42,000 basic gpib 99 00:03:40,080 --> 00:03:45,440 so i mentioned the commands are ascii 100 00:03:42,000 --> 00:03:46,959 a few decades later in 1990 101 00:03:45,440 --> 00:03:48,400 the command format was actually 102 00:03:46,959 --> 00:03:50,480 standardized as something now called 103 00:03:48,400 --> 00:03:52,159 skippy 104 00:03:50,480 --> 00:03:54,480 which 105 00:03:52,159 --> 00:03:56,720 originally just used in gpib now 106 00:03:54,480 --> 00:03:58,840 essentially any transport major 107 00:03:56,720 --> 00:04:01,200 equipment will use commands like 108 00:03:58,840 --> 00:04:03,200 this if you look in documentation you'll 109 00:04:01,200 --> 00:04:06,080 see a command sequence like colon 110 00:04:03,200 --> 00:04:09,280 trigger colon sequence colon source 111 00:04:06,080 --> 00:04:12,159 and what that means is 112 00:04:09,280 --> 00:04:15,360 trig is required the ger is optional 113 00:04:12,159 --> 00:04:17,359 the c entire sequence section is implied 114 00:04:15,360 --> 00:04:20,079 if you don't provide it 115 00:04:17,359 --> 00:04:22,079 uh again sour needs to be specified 116 00:04:20,079 --> 00:04:23,520 the ce is optional 117 00:04:22,079 --> 00:04:24,960 it's a little weird but you get used to 118 00:04:23,520 --> 00:04:28,639 it pretty quickly 119 00:04:24,960 --> 00:04:30,960 it's ugly but it's a command format 120 00:04:28,639 --> 00:04:34,160 and yeah more modern interfaces will 121 00:04:30,960 --> 00:04:36,400 have rs-232 on a d9 122 00:04:34,160 --> 00:04:38,479 or usb 123 00:04:36,400 --> 00:04:40,800 there is a test and measurement 124 00:04:38,479 --> 00:04:42,400 class for generic devices 125 00:04:40,800 --> 00:04:47,680 but there's also basic serial class 126 00:04:42,400 --> 00:04:47,680 devices as usb serial or usb acm 127 00:04:48,080 --> 00:04:52,720 these on devices that are either 128 00:04:50,720 --> 00:04:54,880 made by major manufacturers or also 129 00:04:52,720 --> 00:04:56,720 support gpib will almost certainly be 130 00:04:54,880 --> 00:04:57,440 the same command set 131 00:04:56,720 --> 00:04:59,440 so 132 00:04:57,440 --> 00:05:02,560 once you have built support 133 00:04:59,440 --> 00:05:03,919 in rs232 it'll probably work unchanged 134 00:05:02,560 --> 00:05:05,840 on gpib 135 00:05:03,919 --> 00:05:08,880 it'll probably work unchanged over a 136 00:05:05,840 --> 00:05:08,880 network socket as well 137 00:05:09,039 --> 00:05:13,840 that for example is a keithley 138 00:05:11,440 --> 00:05:15,840 multimeter variant that uh we'll 139 00:05:13,840 --> 00:05:16,639 actually talk about a bit later 140 00:05:15,840 --> 00:05:19,120 and 141 00:05:16,639 --> 00:05:20,800 because they ran out of physical space 142 00:05:19,120 --> 00:05:24,280 they dropped the gpib port it gave you 143 00:05:20,800 --> 00:05:24,280 an ethernet port 144 00:05:24,560 --> 00:05:26,880 so 145 00:05:25,360 --> 00:05:30,880 as i said there's lots of equipment that 146 00:05:26,880 --> 00:05:31,759 supports it you've got uh pretty much 147 00:05:30,880 --> 00:05:33,120 any 148 00:05:31,759 --> 00:05:34,960 major piece of test equipment bench 149 00:05:33,120 --> 00:05:37,680 multimeters power supplies dc loads 150 00:05:34,960 --> 00:05:39,280 power sensors frequency counters sql gen 151 00:05:37,680 --> 00:05:40,720 generators oscilloscopes spectrum 152 00:05:39,280 --> 00:05:41,440 analyzers vnas 153 00:05:40,720 --> 00:05:42,639 it 154 00:05:41,440 --> 00:05:44,479 really is 155 00:05:42,639 --> 00:05:46,400 pretty much any piece of major test 156 00:05:44,479 --> 00:05:48,320 equipment 157 00:05:46,400 --> 00:05:50,080 that you're used to using 158 00:05:48,320 --> 00:05:52,560 at least the higher end versions will 159 00:05:50,080 --> 00:05:53,840 have it as an interface option uh some 160 00:05:52,560 --> 00:05:57,280 more modern stuff will no longer have 161 00:05:53,840 --> 00:05:58,400 gbib but it will still support the same 162 00:05:57,280 --> 00:06:00,960 command sets through different 163 00:05:58,400 --> 00:06:00,960 interfaces 164 00:06:01,199 --> 00:06:06,479 there's also uh in hp terms what's 165 00:06:03,919 --> 00:06:08,639 called system test equipment and this is 166 00:06:06,479 --> 00:06:09,440 stuff intended for automated use 167 00:06:08,639 --> 00:06:11,919 so 168 00:06:09,440 --> 00:06:13,759 it might have little or no local control 169 00:06:11,919 --> 00:06:15,919 local interfacing 170 00:06:13,759 --> 00:06:19,280 uh a front panel with a few indicator 171 00:06:15,919 --> 00:06:21,440 leds or nothing at all even 172 00:06:19,280 --> 00:06:24,080 the two really common ones of these are 173 00:06:21,440 --> 00:06:25,520 what's called a data acquisition 174 00:06:24,080 --> 00:06:27,039 device 175 00:06:25,520 --> 00:06:29,840 which are actually 176 00:06:27,039 --> 00:06:32,880 big switch matrixes uh usually in fact 177 00:06:29,840 --> 00:06:35,039 just a chassis for a big switch matrix 178 00:06:32,880 --> 00:06:37,120 that you then plug in a relay board or 179 00:06:35,039 --> 00:06:39,440 an rf switchboard 180 00:06:37,120 --> 00:06:42,000 uh many of these 181 00:06:39,440 --> 00:06:43,840 can have built-in multimeters 182 00:06:42,000 --> 00:06:45,600 um they are usually 183 00:06:43,840 --> 00:06:46,800 called multimeters 184 00:06:45,600 --> 00:06:48,400 although in practice they are just 185 00:06:46,800 --> 00:06:50,560 voltmeters this 186 00:06:48,400 --> 00:06:52,319 turns out not to be a huge limitation in 187 00:06:50,560 --> 00:06:53,759 practice but 188 00:06:52,319 --> 00:06:56,160 um 189 00:06:53,759 --> 00:06:58,400 just by their very nature doing current 190 00:06:56,160 --> 00:07:00,720 sensing is a bit more of a pain so 191 00:06:58,400 --> 00:07:03,759 you would typically do remote shunts and 192 00:07:00,720 --> 00:07:06,080 measure the voltage over those shunts 193 00:07:03,759 --> 00:07:07,360 there are system power supplies 194 00:07:06,080 --> 00:07:09,520 the old 195 00:07:07,360 --> 00:07:12,000 wonderful old hp system power supplies 196 00:07:09,520 --> 00:07:13,840 are great if you need lots of power 197 00:07:12,000 --> 00:07:14,840 either lots of current at low voltage or 198 00:07:13,840 --> 00:07:18,639 high 199 00:07:14,840 --> 00:07:19,440 voltage their ui is not great 200 00:07:18,639 --> 00:07:21,520 but 201 00:07:19,440 --> 00:07:23,520 they implement a lot of stuff on the 202 00:07:21,520 --> 00:07:25,360 gpib interface and you can control them 203 00:07:23,520 --> 00:07:27,199 that way 204 00:07:25,360 --> 00:07:29,039 the other thing is they're often really 205 00:07:27,199 --> 00:07:30,880 cheap because the ui is not great and if 206 00:07:29,039 --> 00:07:33,120 you're buying them used you're probably 207 00:07:30,880 --> 00:07:34,720 wanting to use it yourself 208 00:07:33,120 --> 00:07:35,919 this is where building a remote front 209 00:07:34,720 --> 00:07:38,400 panel 210 00:07:35,919 --> 00:07:41,039 like john's multimeter example 211 00:07:38,400 --> 00:07:44,160 you can make a much more useful 212 00:07:41,039 --> 00:07:45,759 tool for yourself 213 00:07:44,160 --> 00:07:47,520 and those power supplies can be had for 214 00:07:45,759 --> 00:07:50,240 almost the cost 215 00:07:47,520 --> 00:07:52,080 almost nothing plus the cost of shipping 216 00:07:50,240 --> 00:07:54,800 unfortunately those big old hp power 217 00:07:52,080 --> 00:07:55,840 supplies are extremely heavy 218 00:07:54,800 --> 00:07:57,520 so 219 00:07:55,840 --> 00:07:59,599 the cost of shipping can often be quite 220 00:07:57,520 --> 00:08:01,759 significant 221 00:07:59,599 --> 00:08:03,840 there are also system versions of other 222 00:08:01,759 --> 00:08:05,919 test equipment um oscilloscopes 223 00:08:03,840 --> 00:08:07,759 multimeters are parameters 224 00:08:05,919 --> 00:08:09,759 those are rarer 225 00:08:07,759 --> 00:08:11,120 simply because 226 00:08:09,759 --> 00:08:13,360 people that spec 227 00:08:11,120 --> 00:08:15,599 the integrated rat test racks that they 228 00:08:13,360 --> 00:08:17,520 are for 229 00:08:15,599 --> 00:08:19,680 will tend to actually spec the full 230 00:08:17,520 --> 00:08:23,280 version unless they're space constrained 231 00:08:19,680 --> 00:08:23,280 because you don't save much money 232 00:08:24,840 --> 00:08:28,080 um yeah 233 00:08:28,479 --> 00:08:32,240 next talking to a computer so 234 00:08:30,800 --> 00:08:34,800 historically there were all sorts of 235 00:08:32,240 --> 00:08:36,800 forms pci cards iso cards 236 00:08:34,800 --> 00:08:38,560 uh raw bus interfaces on some really old 237 00:08:36,800 --> 00:08:40,640 systems 238 00:08:38,560 --> 00:08:42,399 these days what you actually do is you 239 00:08:40,640 --> 00:08:43,360 use a usb interface or an ethernet 240 00:08:42,399 --> 00:08:44,159 interface 241 00:08:43,360 --> 00:08:47,120 uh 242 00:08:44,159 --> 00:08:49,440 although it's surprising it doesn't seem 243 00:08:47,120 --> 00:08:51,440 that any testimony i'm aware of 244 00:08:49,440 --> 00:08:54,959 with both the usb port and gpib port 245 00:08:51,440 --> 00:08:56,800 will actually act as a gpib interface 246 00:08:54,959 --> 00:08:59,040 with the possible exception of some of 247 00:08:56,800 --> 00:09:00,959 the really grunty stuff that actually 248 00:08:59,040 --> 00:09:03,200 runs full desktop windows 249 00:09:00,959 --> 00:09:05,600 i suspect some of those can be made to 250 00:09:03,200 --> 00:09:08,920 be a gpib host as well but i've never 251 00:09:05,600 --> 00:09:08,920 tried that 252 00:09:09,279 --> 00:09:14,160 you can get nice generic open source 253 00:09:11,839 --> 00:09:17,760 hardware gpib interfaces that's a 254 00:09:14,160 --> 00:09:19,839 galvant gpib usb it's the sword i use 255 00:09:17,760 --> 00:09:22,240 it works fine 256 00:09:19,839 --> 00:09:24,399 both keysight slash agilent hewlett 257 00:09:22,240 --> 00:09:26,000 packard and national instruments so the 258 00:09:24,399 --> 00:09:27,519 two companies that are most known for 259 00:09:26,000 --> 00:09:30,000 gpib equipment 260 00:09:27,519 --> 00:09:32,720 have usb interfaces the really big 261 00:09:30,000 --> 00:09:34,640 warning here is clones of those devices 262 00:09:32,720 --> 00:09:36,399 do exist the clones are known to be 263 00:09:34,640 --> 00:09:37,839 buggy it's 264 00:09:36,399 --> 00:09:40,320 a little hard to actually get good 265 00:09:37,839 --> 00:09:42,160 options which sort of means unless you 266 00:09:40,320 --> 00:09:43,839 have a reason to use them 267 00:09:42,160 --> 00:09:45,279 to use the keysight or national 268 00:09:43,839 --> 00:09:48,000 instruments tooling 269 00:09:45,279 --> 00:09:49,680 probably just use the generic ones 270 00:09:48,000 --> 00:09:52,480 and the generic ones are nice and cheap 271 00:09:49,680 --> 00:09:52,480 so wonderful 272 00:09:54,000 --> 00:09:58,480 now second interface so 273 00:09:56,399 --> 00:09:59,920 gpib is great when i've got big test 274 00:09:58,480 --> 00:10:01,279 equipment but 275 00:09:59,920 --> 00:10:03,760 what about more custom stuff what about 276 00:10:01,279 --> 00:10:06,720 more weird stuff i can get 277 00:10:03,760 --> 00:10:08,720 system temperature sensors but 278 00:10:06,720 --> 00:10:11,839 they're big and chunky and 279 00:10:08,720 --> 00:10:13,519 not necessarily integratable but we have 280 00:10:11,839 --> 00:10:14,320 this wonderful thing called i squared c 281 00:10:13,519 --> 00:10:16,480 so 282 00:10:14,320 --> 00:10:19,120 i squared c created in the 80s by 283 00:10:16,480 --> 00:10:20,640 philips as a way to simplify tvs which 284 00:10:19,120 --> 00:10:22,160 were starting to add heaps of digital 285 00:10:20,640 --> 00:10:24,640 features and 286 00:10:22,160 --> 00:10:26,640 such at the time 287 00:10:24,640 --> 00:10:27,360 so the way to 288 00:10:26,640 --> 00:10:29,200 con 289 00:10:27,360 --> 00:10:30,320 connect peripherals to microcontrollers 290 00:10:29,200 --> 00:10:32,800 it's now 291 00:10:30,320 --> 00:10:34,560 extremely common uh 292 00:10:32,800 --> 00:10:37,839 when i was riding this deck i thought to 293 00:10:34,560 --> 00:10:40,000 check and my laptop has 11 i squared c 294 00:10:37,839 --> 00:10:41,920 buses exposed to the kernel 295 00:10:40,000 --> 00:10:42,880 it probably has more i squared c buses 296 00:10:41,920 --> 00:10:46,920 than that 297 00:10:42,880 --> 00:10:46,920 they're just not exposed to the kernel 298 00:10:47,519 --> 00:10:51,760 and it really has become the de facto 299 00:10:49,360 --> 00:10:53,360 load speed low speed interface 300 00:10:51,760 --> 00:10:56,079 for pretty much anything if you've heard 301 00:10:53,360 --> 00:10:59,079 of sm bus or pmbus those are i squared c 302 00:10:56,079 --> 00:10:59,079 variants 303 00:11:00,480 --> 00:11:03,600 yeah 304 00:11:01,920 --> 00:11:06,720 there are some limitations though you 305 00:11:03,600 --> 00:11:09,120 get up to 127 endpoints on a bus 306 00:11:06,720 --> 00:11:11,360 but in practice 307 00:11:09,120 --> 00:11:13,600 most chips can only be selected to an a 308 00:11:11,360 --> 00:11:14,399 few addresses so you very quickly run 309 00:11:13,600 --> 00:11:17,040 out of 310 00:11:14,399 --> 00:11:18,880 address space that you can actually use 311 00:11:17,040 --> 00:11:20,000 there are bus switches to work around 312 00:11:18,880 --> 00:11:21,839 this 313 00:11:20,000 --> 00:11:23,360 uh 314 00:11:21,839 --> 00:11:25,040 the notable case for that is some 315 00:11:23,360 --> 00:11:26,800 network devices where 316 00:11:25,040 --> 00:11:29,279 i squared c is a standard interface for 317 00:11:26,800 --> 00:11:30,880 them or multi-output video again where i 318 00:11:29,279 --> 00:11:33,519 squid c is a standard 319 00:11:30,880 --> 00:11:35,120 for plug-ins 320 00:11:33,519 --> 00:11:36,320 uh long bust length can be a bit of an 321 00:11:35,120 --> 00:11:38,560 issue 322 00:11:36,320 --> 00:11:40,800 as was mentioned the previous talk there 323 00:11:38,560 --> 00:11:42,880 are chips to help here 324 00:11:40,800 --> 00:11:45,279 and it's an open drain bus 325 00:11:42,880 --> 00:11:47,200 you really should try and share the same 326 00:11:45,279 --> 00:11:49,600 ielts i o voltage and you absolutely 327 00:11:47,200 --> 00:11:50,800 must share a ground 328 00:11:49,600 --> 00:11:52,240 again 329 00:11:50,800 --> 00:11:54,959 we'll talk about working around this on 330 00:11:52,240 --> 00:11:54,959 the next slide 331 00:11:55,519 --> 00:11:58,320 now 332 00:11:56,800 --> 00:12:01,040 one of the really nice things that's 333 00:11:58,320 --> 00:12:04,480 happened recently in the last few years 334 00:12:01,040 --> 00:12:07,440 is adafruit have standardized 335 00:12:04,480 --> 00:12:09,519 a connector format called stemma qt 336 00:12:07,440 --> 00:12:11,519 which is nothing more than a pin out 337 00:12:09,519 --> 00:12:12,399 standard for a jst 338 00:12:11,519 --> 00:12:14,320 uh 339 00:12:12,399 --> 00:12:15,839 jst sh 340 00:12:14,320 --> 00:12:17,519 connector 341 00:12:15,839 --> 00:12:18,480 that means 342 00:12:17,519 --> 00:12:21,680 any 343 00:12:18,480 --> 00:12:23,680 i squared c sensor test board 344 00:12:21,680 --> 00:12:26,160 they just plug in and chain it's 345 00:12:23,680 --> 00:12:26,160 wonderful 346 00:12:26,720 --> 00:12:30,959 um 347 00:12:28,000 --> 00:12:34,639 adafruit themselves have 348 00:12:30,959 --> 00:12:36,639 many many breakouts it's probably 349 00:12:34,639 --> 00:12:38,560 certainly in the dozens 350 00:12:36,639 --> 00:12:40,079 and this means if you just want to chuck 351 00:12:38,560 --> 00:12:42,720 a temp sensor 352 00:12:40,079 --> 00:12:45,040 on a project it's really easy 353 00:12:42,720 --> 00:12:46,480 uh the little board in the top right 354 00:12:45,040 --> 00:12:47,680 there is 355 00:12:46,480 --> 00:12:49,839 a ti 356 00:12:47,680 --> 00:12:51,279 temp 117 which is an incredibly 357 00:12:49,839 --> 00:12:53,200 sensitive temperature sensor it's a 358 00:12:51,279 --> 00:12:54,560 lovely little thing 359 00:12:53,200 --> 00:12:56,480 works wonderfully 360 00:12:54,560 --> 00:12:59,920 it is an absolute bear of a chip to 361 00:12:56,480 --> 00:12:59,920 solder as we'll see later 362 00:13:01,760 --> 00:13:06,560 now as i mentioned i could see it's 363 00:13:03,680 --> 00:13:08,959 meant to be intra board 364 00:13:06,560 --> 00:13:11,600 depending on your sort of project you 365 00:13:08,959 --> 00:13:12,560 might want to use an isolator 366 00:13:11,600 --> 00:13:14,320 uh 367 00:13:12,560 --> 00:13:16,720 it's 368 00:13:14,320 --> 00:13:19,519 in my case i'm doing some pretty 369 00:13:16,720 --> 00:13:21,440 sensitive power supply stuff so 370 00:13:19,519 --> 00:13:23,440 i want an isolator even though i don't 371 00:13:21,440 --> 00:13:25,040 really need one 372 00:13:23,440 --> 00:13:26,880 and again if you're using crossboard 373 00:13:25,040 --> 00:13:28,079 it's a way to avoid noise 374 00:13:26,880 --> 00:13:30,160 if things are working and you're not 375 00:13:28,079 --> 00:13:33,519 doing very sensitive power rail or 376 00:13:30,160 --> 00:13:36,079 signal stuff you might not need it 377 00:13:33,519 --> 00:13:40,959 ti have an iso 15 378 00:13:36,079 --> 00:13:40,959 15 50 15 60 15 40 series 379 00:13:41,120 --> 00:13:43,519 now 380 00:13:42,160 --> 00:13:46,240 be careful if you're looking at 381 00:13:43,519 --> 00:13:48,320 isolators some of them care about 382 00:13:46,240 --> 00:13:49,920 where the clock is coming from some of 383 00:13:48,320 --> 00:13:52,639 them care about 384 00:13:49,920 --> 00:13:53,440 which side has a higher i o voltage 385 00:13:52,639 --> 00:13:55,040 um 386 00:13:53,440 --> 00:13:56,720 just read the data sheet when you're 387 00:13:55,040 --> 00:13:58,399 looking this up you don't want to design 388 00:13:56,720 --> 00:14:01,560 the board and realize oops that's never 389 00:13:58,399 --> 00:14:01,560 going to work 390 00:14:02,079 --> 00:14:05,680 now computer interfaces so as i 391 00:14:04,079 --> 00:14:07,360 mentioned my laptop has 11i squared c 392 00:14:05,680 --> 00:14:08,639 buses great i can just plug into one of 393 00:14:07,360 --> 00:14:11,680 them because 394 00:14:08,639 --> 00:14:13,920 well it turns out uh display interfaces 395 00:14:11,680 --> 00:14:15,199 actually use i squared c to do some 396 00:14:13,920 --> 00:14:16,399 sensing 397 00:14:15,199 --> 00:14:17,839 so you can piggyback off that and you've 398 00:14:16,399 --> 00:14:19,440 got an i squared c interface on your 399 00:14:17,839 --> 00:14:24,000 desktop computer already exposed to the 400 00:14:19,440 --> 00:14:24,000 world that's not a great idea to use 401 00:14:24,320 --> 00:14:27,360 on embedded boards you actually have 402 00:14:26,000 --> 00:14:28,959 some buses that are intentionally 403 00:14:27,360 --> 00:14:32,480 exposed 404 00:14:28,959 --> 00:14:34,079 check if those buses are actually unused 405 00:14:32,480 --> 00:14:35,920 reusing a bus that's in use for a 406 00:14:34,079 --> 00:14:38,560 general purpose on a machine 407 00:14:35,920 --> 00:14:41,279 you might have some issues 408 00:14:38,560 --> 00:14:43,920 uh for my own test use i simply used a 409 00:14:41,279 --> 00:14:46,399 usb breakout even though i was using a 410 00:14:43,920 --> 00:14:47,519 raspberry pi because 411 00:14:46,399 --> 00:14:50,000 it's just 412 00:14:47,519 --> 00:14:52,720 easier to be isolated it also meant i 413 00:14:50,000 --> 00:14:54,959 could do my development on my laptop 414 00:14:52,720 --> 00:14:56,800 which is a big chunky thing 415 00:14:54,959 --> 00:14:57,680 over usb and then just plug it into the 416 00:14:56,800 --> 00:15:00,160 pi 417 00:14:57,680 --> 00:15:01,199 i don't really care that it's an extra 418 00:15:00,160 --> 00:15:02,959 step when i could be a little bit more 419 00:15:01,199 --> 00:15:05,040 efficient if i was actually building a 420 00:15:02,959 --> 00:15:07,440 permanent install sure i'd be more 421 00:15:05,040 --> 00:15:11,120 efficient but testing let's solve the 422 00:15:07,440 --> 00:15:13,120 problem and move on not be perfect 423 00:15:11,120 --> 00:15:14,880 so my project was 424 00:15:13,120 --> 00:15:17,519 characterizing a dac 425 00:15:14,880 --> 00:15:19,040 uh i as i mentioned i'm building a 426 00:15:17,519 --> 00:15:20,959 digitally controlled urbanized crystal 427 00:15:19,040 --> 00:15:23,279 oscillator 428 00:15:20,959 --> 00:15:24,959 and they're digitally controlled 429 00:15:23,279 --> 00:15:27,839 there's a dac that does that digital 430 00:15:24,959 --> 00:15:30,240 control i want to understand what the 431 00:15:27,839 --> 00:15:32,880 linearity is of that dac as it is 432 00:15:30,240 --> 00:15:34,880 actually used in circuit 433 00:15:32,880 --> 00:15:38,880 i then want to understand how that 434 00:15:34,880 --> 00:15:40,399 affects the output frequency 435 00:15:38,880 --> 00:15:41,519 and unfortunately i didn't get to that 436 00:15:40,399 --> 00:15:43,199 and we'll 437 00:15:41,519 --> 00:15:45,680 maybe talk about that if we do have a 438 00:15:43,199 --> 00:15:45,680 few minutes 439 00:15:45,920 --> 00:15:49,600 so 440 00:15:46,720 --> 00:15:51,279 here's the test board uh there's the 441 00:15:49,600 --> 00:15:54,720 actual 442 00:15:51,279 --> 00:15:57,759 uh ocxo board in the middle uh minus the 443 00:15:54,720 --> 00:15:59,680 oven which is in the enclosure 444 00:15:57,759 --> 00:16:02,320 and there's a carrier board i originally 445 00:15:59,680 --> 00:16:04,720 didn't have the carrier board however 446 00:16:02,320 --> 00:16:05,920 i discovered that breadboards are 447 00:16:04,720 --> 00:16:06,880 terrible 448 00:16:05,920 --> 00:16:09,279 and 449 00:16:06,880 --> 00:16:11,440 this is not really news to anyone who's 450 00:16:09,279 --> 00:16:13,440 tried to do even 451 00:16:11,440 --> 00:16:15,519 megahertz level signals 452 00:16:13,440 --> 00:16:18,959 uh this is a 26 megahertz oscillator 453 00:16:15,519 --> 00:16:18,959 because that happens to be what i need 454 00:16:19,680 --> 00:16:22,720 but 455 00:16:20,720 --> 00:16:24,240 it turns out breadboards are so terrible 456 00:16:22,720 --> 00:16:26,160 that they actually invalidated a bunch 457 00:16:24,240 --> 00:16:28,000 of my results so i ended up built 458 00:16:26,160 --> 00:16:30,079 designing my own board 459 00:16:28,000 --> 00:16:31,759 uh and i'll make it clear i didn't do 460 00:16:30,079 --> 00:16:34,959 any effort at signal integrity on this 461 00:16:31,759 --> 00:16:36,480 board it is quick tracers everything 462 00:16:34,959 --> 00:16:37,600 just chucked where i wanted for quick 463 00:16:36,480 --> 00:16:38,639 layout 464 00:16:37,600 --> 00:16:42,399 and it is 465 00:16:38,639 --> 00:16:42,399 massively better than the original 466 00:16:42,800 --> 00:16:45,120 board 467 00:16:45,680 --> 00:16:47,920 so 468 00:16:46,399 --> 00:16:50,240 what is on the board 469 00:16:47,920 --> 00:16:52,000 in the center on the pop-out board you 470 00:16:50,240 --> 00:16:53,120 have the little silver thing is a 471 00:16:52,000 --> 00:16:56,399 crystal 472 00:16:53,120 --> 00:16:58,880 the ic right next to it is 473 00:16:56,399 --> 00:17:01,040 the oscillator itself which is a 474 00:16:58,880 --> 00:17:02,160 slowable oscillator 475 00:17:01,040 --> 00:17:06,640 the 476 00:17:02,160 --> 00:17:07,679 ic in the middle is the dac the ic at 477 00:17:06,640 --> 00:17:08,880 the bottom 478 00:17:07,679 --> 00:17:11,360 is 479 00:17:08,880 --> 00:17:12,319 the just some power supply filtering 480 00:17:11,360 --> 00:17:13,760 the 481 00:17:12,319 --> 00:17:15,919 collection of passives to the left of 482 00:17:13,760 --> 00:17:18,480 the dac are some 483 00:17:15,919 --> 00:17:19,600 output filtering and then the silver pad 484 00:17:18,480 --> 00:17:20,799 you can just see to the right of the 485 00:17:19,600 --> 00:17:23,360 oscillator 486 00:17:20,799 --> 00:17:26,480 is meant to be the pads for a tnp triple 487 00:17:23,360 --> 00:17:29,440 one seven sorry double one seven 488 00:17:26,480 --> 00:17:32,640 unfortunately they are really small 489 00:17:29,440 --> 00:17:34,320 this is surprisingly hard to solder 490 00:17:32,640 --> 00:17:35,679 and i if i actually want to get one 491 00:17:34,320 --> 00:17:38,799 soldered i'm going to have to learn to 492 00:17:35,679 --> 00:17:38,799 use solder paste stencils 493 00:17:38,880 --> 00:17:44,840 this was reflowed by hand but 494 00:17:41,919 --> 00:17:46,960 the paste is just an issue 495 00:17:44,840 --> 00:17:48,640 uh i should have actually brought one of 496 00:17:46,960 --> 00:17:52,000 those boards to hand to see just how 497 00:17:48,640 --> 00:17:53,679 tiny it is but it is really quite tiny 498 00:17:52,000 --> 00:17:56,320 the carrier board simply has some power 499 00:17:53,679 --> 00:17:57,280 supply filtering i also chucked an i 500 00:17:56,320 --> 00:17:59,760 squared 501 00:17:57,280 --> 00:18:01,440 c isolator footprint set on that as you 502 00:17:59,760 --> 00:18:02,880 can see that's not populated because 503 00:18:01,440 --> 00:18:04,720 well 504 00:18:02,880 --> 00:18:08,640 it turns out you can't buy chips at the 505 00:18:04,720 --> 00:18:10,559 moment for some strange reason so oops 506 00:18:08,640 --> 00:18:12,799 that is why there's also a non-isolated 507 00:18:10,559 --> 00:18:14,480 stem qt port 508 00:18:12,799 --> 00:18:16,559 and answer my problem and there's an 509 00:18:14,480 --> 00:18:18,640 output buffer because 510 00:18:16,559 --> 00:18:20,880 the oscillator board can't drive a 50 511 00:18:18,640 --> 00:18:24,240 ohm load and i want to be able to plug 512 00:18:20,880 --> 00:18:24,240 into some of my rf test equipment 513 00:18:24,640 --> 00:18:27,440 so the actual test set up in this 514 00:18:26,160 --> 00:18:29,840 progress because 515 00:18:27,440 --> 00:18:31,840 i need to test a dac i need to test its 516 00:18:29,840 --> 00:18:34,000 values that's going to take time 517 00:18:31,840 --> 00:18:34,960 spare raspberry pi 518 00:18:34,000 --> 00:18:38,480 uh 519 00:18:34,960 --> 00:18:40,320 through usb to a nice squared c m c p 520 00:18:38,480 --> 00:18:43,520 two one as i mentioned through an 521 00:18:40,320 --> 00:18:44,640 isolator to a tempe 117 522 00:18:43,520 --> 00:18:47,280 just to have a temperature sensor 523 00:18:44,640 --> 00:18:49,280 because there should be one 524 00:18:47,280 --> 00:18:51,840 to my test board 525 00:18:49,280 --> 00:18:53,440 uh test board is powered off a nice lab 526 00:18:51,840 --> 00:18:55,360 power supply 527 00:18:53,440 --> 00:18:57,600 i half got through integrating the lab 528 00:18:55,360 --> 00:18:59,600 power supply but it turns out 529 00:18:57,600 --> 00:19:01,200 i can't even though i have a very nice 530 00:18:59,600 --> 00:19:03,280 one with extremely good power 531 00:19:01,200 --> 00:19:04,640 sensitivity measurements it's not 532 00:19:03,280 --> 00:19:08,240 actually useful 533 00:19:04,640 --> 00:19:10,240 for rail measurements so i couldn't 534 00:19:08,240 --> 00:19:11,120 couldn't really use it as a source of 535 00:19:10,240 --> 00:19:12,160 input 536 00:19:11,120 --> 00:19:13,919 and 537 00:19:12,160 --> 00:19:16,640 i ended up just using it as an extremely 538 00:19:13,919 --> 00:19:18,559 nice five volt source so i 539 00:19:16,640 --> 00:19:20,480 part automated it but didn't really 540 00:19:18,559 --> 00:19:23,919 finish 541 00:19:20,480 --> 00:19:25,600 then there's a gpib usb with a ke3 542 00:19:23,919 --> 00:19:27,840 multimeter 543 00:19:25,600 --> 00:19:29,360 nice it is actually a basic low end 544 00:19:27,840 --> 00:19:31,360 keithley multimeter not one of their 545 00:19:29,360 --> 00:19:34,160 really crazy ones 546 00:19:31,360 --> 00:19:35,919 and a originally a stanford research 547 00:19:34,160 --> 00:19:39,120 frequency counter which was 548 00:19:35,919 --> 00:19:40,080 going to be to use the 549 00:19:39,120 --> 00:19:44,640 uh 550 00:19:40,080 --> 00:19:44,640 to actually then close the loop and i do 551 00:19:44,880 --> 00:19:48,320 for dac 552 00:19:46,080 --> 00:19:50,400 values what is the output frequency 553 00:19:48,320 --> 00:19:52,480 in the end 554 00:19:50,400 --> 00:19:54,000 i had enough weird issues with the 555 00:19:52,480 --> 00:19:55,679 stanford research counter that i 556 00:19:54,000 --> 00:19:57,120 actually retired it 557 00:19:55,679 --> 00:19:59,600 for that use 558 00:19:57,120 --> 00:20:01,360 and bought a very nice hp counter that 559 00:19:59,600 --> 00:20:03,760 you can actually see that thing just 560 00:20:01,360 --> 00:20:06,080 there is a very nice hp counter 561 00:20:03,760 --> 00:20:07,919 that blew a power supply right after i 562 00:20:06,080 --> 00:20:09,600 got it and by the time i got the 563 00:20:07,919 --> 00:20:12,480 replacement power supply i had to 564 00:20:09,600 --> 00:20:14,000 actually clear everything up so i 565 00:20:12,480 --> 00:20:15,760 haven't gotten around to finishing that 566 00:20:14,000 --> 00:20:17,360 part of the testing 567 00:20:15,760 --> 00:20:19,440 because well 568 00:20:17,360 --> 00:20:20,799 that was in the first round of testing 569 00:20:19,440 --> 00:20:22,880 and 570 00:20:20,799 --> 00:20:24,240 underneath all that equipment was my 571 00:20:22,880 --> 00:20:25,280 dining table 572 00:20:24,240 --> 00:20:26,960 so 573 00:20:25,280 --> 00:20:28,799 it kind of turned into a hp catalog 574 00:20:26,960 --> 00:20:30,960 photo shoot of equipment 575 00:20:28,799 --> 00:20:32,960 and that's not even the worst case stage 576 00:20:30,960 --> 00:20:35,760 it got to 577 00:20:32,960 --> 00:20:37,919 so unfortunately i'm in a bit of a messy 578 00:20:35,760 --> 00:20:41,360 situation where 579 00:20:37,919 --> 00:20:43,919 uh i moved house in march 2020 and never 580 00:20:41,360 --> 00:20:45,520 quite got this room set up as a lab 581 00:20:43,919 --> 00:20:47,919 so instead it became my office for the 582 00:20:45,520 --> 00:20:50,640 last two years and it is a small house i 583 00:20:47,919 --> 00:20:52,480 don't have another room for a lab 584 00:20:50,640 --> 00:20:53,520 but 585 00:20:52,480 --> 00:20:57,039 yeah 586 00:20:53,520 --> 00:20:58,400 big unfortunate mess and um 587 00:20:57,039 --> 00:21:02,559 helpful to have somewhere to eat dinner 588 00:20:58,400 --> 00:21:04,720 so the test setup only lasted a few days 589 00:21:02,559 --> 00:21:08,159 and the code i'll put the actual full 590 00:21:04,720 --> 00:21:09,360 code file up somewhere useful because 591 00:21:08,159 --> 00:21:10,799 this is 592 00:21:09,360 --> 00:21:13,039 a summary and not complete but it's 593 00:21:10,799 --> 00:21:14,320 actually most of the code 594 00:21:13,039 --> 00:21:16,000 essentially 595 00:21:14,320 --> 00:21:17,039 there's python libraries for the gpib 596 00:21:16,000 --> 00:21:19,760 usb 597 00:21:17,039 --> 00:21:22,480 adafruit has the blinker library set 598 00:21:19,760 --> 00:21:25,600 which lets their circuit python 599 00:21:22,480 --> 00:21:26,880 interface code run on general desktop 600 00:21:25,600 --> 00:21:28,720 python 601 00:21:26,880 --> 00:21:30,480 and the two of them combined work fine 602 00:21:28,720 --> 00:21:32,880 in a single program 603 00:21:30,480 --> 00:21:34,080 so i connect to the multimeter through 604 00:21:32,880 --> 00:21:36,320 gpib 605 00:21:34,080 --> 00:21:38,000 i connect to the i squared c devices the 606 00:21:36,320 --> 00:21:39,840 dac and the temperature sensor 607 00:21:38,000 --> 00:21:41,679 through the interface 608 00:21:39,840 --> 00:21:42,960 uh do some configuration of the 609 00:21:41,679 --> 00:21:45,520 multimeter 610 00:21:42,960 --> 00:21:49,520 tell it to clear itself back to defaults 611 00:21:45,520 --> 00:21:51,520 essentially go into voltage meeting uh 612 00:21:49,520 --> 00:21:52,720 measurement set the range to a fixed 613 00:21:51,520 --> 00:21:55,360 value 614 00:21:52,720 --> 00:21:56,960 set the power line cycles so that does 615 00:21:55,360 --> 00:21:58,799 the best measurement i can get it to do 616 00:21:56,960 --> 00:22:00,799 turn off averaging 617 00:21:58,799 --> 00:22:03,039 uh measure on a trigger 618 00:22:00,799 --> 00:22:04,960 set the trigger to manual 619 00:22:03,039 --> 00:22:07,760 tell the temperature sensor to turn on 620 00:22:04,960 --> 00:22:10,640 averaging because i do want it there 621 00:22:07,760 --> 00:22:13,360 and then i simply do a loop of for every 622 00:22:10,640 --> 00:22:15,360 value in the dac range set the dac 623 00:22:13,360 --> 00:22:16,400 let it settle for a little bit 624 00:22:15,360 --> 00:22:17,919 measure the voltage measure the 625 00:22:16,400 --> 00:22:20,880 temperature 626 00:22:17,919 --> 00:22:20,880 and write it to a log 627 00:22:22,559 --> 00:22:27,760 and that's just a csv and then 628 00:22:25,440 --> 00:22:29,280 i can graph the result on the csv so i 629 00:22:27,760 --> 00:22:30,640 can see that 630 00:22:29,280 --> 00:22:34,480 the real bottom of the range in the real 631 00:22:30,640 --> 00:22:36,720 top of the range it's not so great but 632 00:22:34,480 --> 00:22:39,039 actually we're hovering around point one 633 00:22:36,720 --> 00:22:41,880 percent absolute error 634 00:22:39,039 --> 00:22:45,520 and relative that's 635 00:22:41,880 --> 00:22:46,400 0.04 ish percent plus or minus 636 00:22:45,520 --> 00:22:47,520 which 637 00:22:46,400 --> 00:22:50,640 okay 638 00:22:47,520 --> 00:22:52,480 um i don't quite like that dip 639 00:22:50,640 --> 00:22:54,240 just before half scale and it 640 00:22:52,480 --> 00:22:56,159 unfortunately turns out that half scale 641 00:22:54,240 --> 00:22:58,320 is extremely important so 642 00:22:56,159 --> 00:22:59,600 i might do some design changes there but 643 00:22:58,320 --> 00:23:02,080 i've got the information to do those 644 00:22:59,600 --> 00:23:04,480 design changes now 645 00:23:02,080 --> 00:23:04,480 uh 646 00:23:05,600 --> 00:23:08,799 yeah 647 00:23:07,520 --> 00:23:11,120 and 648 00:23:08,799 --> 00:23:12,960 as i said i would have liked to have 649 00:23:11,120 --> 00:23:14,559 closed the loop a bit and done frequency 650 00:23:12,960 --> 00:23:16,799 measurements using the actual dac app 651 00:23:14,559 --> 00:23:18,799 the oscillator output 652 00:23:16,799 --> 00:23:21,360 unfortunately 653 00:23:18,799 --> 00:23:24,400 for reasons i didn't fully determine the 654 00:23:21,360 --> 00:23:27,600 stanford research counter 655 00:23:24,400 --> 00:23:29,679 got out of sync when i used it on gpib 656 00:23:27,600 --> 00:23:31,520 uh it was measuring 657 00:23:29,679 --> 00:23:34,480 something was buffering measurements and 658 00:23:31,520 --> 00:23:38,480 i didn't figure out why 659 00:23:34,480 --> 00:23:41,200 and the new hp frequently comparatively 660 00:23:38,480 --> 00:23:43,919 new to me hp frequency counter 661 00:23:41,200 --> 00:23:45,520 unfortunately dropped a power supply 662 00:23:43,919 --> 00:23:46,480 right as i went to actually put it in 663 00:23:45,520 --> 00:23:47,279 use 664 00:23:46,480 --> 00:23:50,559 so 665 00:23:47,279 --> 00:23:53,200 i haven't gotten back to that project 666 00:23:50,559 --> 00:23:54,159 since all those repairs happened 667 00:23:53,200 --> 00:23:55,600 uh 668 00:23:54,159 --> 00:23:57,039 yeah 669 00:23:55,600 --> 00:23:59,360 so 670 00:23:57,039 --> 00:23:59,360 that's 671 00:23:59,520 --> 00:24:05,039 test interfaces test 672 00:24:02,960 --> 00:24:06,240 and then putting it together 673 00:24:05,039 --> 00:24:09,679 into a system 674 00:24:06,240 --> 00:24:09,679 and so any questions 675 00:24:10,640 --> 00:24:13,760 ah thank you julian 676 00:24:12,880 --> 00:24:15,520 um 677 00:24:13,760 --> 00:24:17,600 i haven't seen any questions there is 678 00:24:15,520 --> 00:24:19,679 still time if anybody wants to jump in 679 00:24:17,600 --> 00:24:21,840 and put questions into the questions 680 00:24:19,679 --> 00:24:23,679 section of the chat 681 00:24:21,840 --> 00:24:26,080 what i have noticed is that a couple of 682 00:24:23,679 --> 00:24:28,720 people have been putting 683 00:24:26,080 --> 00:24:31,440 i2c detect dumps 684 00:24:28,720 --> 00:24:33,520 computers into the chat to show how many 685 00:24:31,440 --> 00:24:34,559 um how many buses are exposed on their 686 00:24:33,520 --> 00:24:37,039 computers 687 00:24:34,559 --> 00:24:38,240 yeah there's also a cfs 688 00:24:37,039 --> 00:24:40,159 tree 689 00:24:38,240 --> 00:24:42,080 somewhere in somewhere in slash this 690 00:24:40,159 --> 00:24:42,799 there's a bus list for i squared c which 691 00:24:42,080 --> 00:24:44,880 is 692 00:24:42,799 --> 00:24:47,279 where i got the 11 number 693 00:24:44,880 --> 00:24:49,520 um it's 694 00:24:47,279 --> 00:24:52,080 it was just such an absurd outlier by 695 00:24:49,520 --> 00:24:53,600 comparison to all my other machines that 696 00:24:52,080 --> 00:24:55,440 like 697 00:24:53,600 --> 00:24:57,279 how 698 00:24:55,440 --> 00:25:00,559 and what are they doing like 699 00:24:57,279 --> 00:25:04,080 yeah i i can only assume that 700 00:25:00,559 --> 00:25:05,840 both usb-c ports the hdmi port 701 00:25:04,080 --> 00:25:08,159 like two or three for sensing or 702 00:25:05,840 --> 00:25:10,720 something and i i still can't figure out 703 00:25:08,159 --> 00:25:12,480 what they're all doing but yeah somehow 704 00:25:10,720 --> 00:25:14,640 we have 11 other things 705 00:25:12,480 --> 00:25:17,840 yeah well perhaps there are some 706 00:25:14,640 --> 00:25:18,880 associated with um drive controllers uh 707 00:25:17,840 --> 00:25:20,080 maybe 708 00:25:18,880 --> 00:25:22,559 yeah there are a few things they could 709 00:25:20,080 --> 00:25:25,360 be yeah exactly yeah 710 00:25:22,559 --> 00:25:27,120 bob just pointed out fan control 711 00:25:25,360 --> 00:25:30,240 so yeah there are lots of things where i 712 00:25:27,120 --> 00:25:32,400 squared c is useful inside a system 713 00:25:30,240 --> 00:25:35,120 yeah so often with embedded projects 714 00:25:32,400 --> 00:25:38,240 we're used we're accustomed to having um 715 00:25:35,120 --> 00:25:40,000 the i squared c bus there's one 716 00:25:38,240 --> 00:25:42,320 not a dozen of them 717 00:25:40,000 --> 00:25:44,559 yeah a lot of modern micros will give 718 00:25:42,320 --> 00:25:46,000 you two or three you might have to pin 719 00:25:44,559 --> 00:25:46,880 max them 720 00:25:46,000 --> 00:25:49,760 uh 721 00:25:46,880 --> 00:25:51,200 or do other things and as i say you can 722 00:25:49,760 --> 00:25:52,960 you can end up in some weird cases where 723 00:25:51,200 --> 00:25:55,760 you end up needing three i squared sea 724 00:25:52,960 --> 00:25:57,600 buses for three devices 725 00:25:55,760 --> 00:25:59,039 oops they can only do one dress and that 726 00:25:57,600 --> 00:26:00,720 one address is the same for all three 727 00:25:59,039 --> 00:26:01,520 devices 728 00:26:00,720 --> 00:26:03,600 yeah 729 00:26:01,520 --> 00:26:05,200 so um i have a couple of questions for 730 00:26:03,600 --> 00:26:06,960 you since we have a 731 00:26:05,200 --> 00:26:09,039 a minute or two 732 00:26:06,960 --> 00:26:11,039 and i i personally have an interest in 733 00:26:09,039 --> 00:26:12,240 this so 734 00:26:11,039 --> 00:26:14,640 um 735 00:26:12,240 --> 00:26:17,039 gpib has been around for a very very 736 00:26:14,640 --> 00:26:18,720 long time and so just from my 737 00:26:17,039 --> 00:26:21,120 observation not really knowing a whole 738 00:26:18,720 --> 00:26:24,640 lot about test equipment it seems that 739 00:26:21,120 --> 00:26:27,840 a lot of vendors have been moving to um 740 00:26:24,640 --> 00:26:30,320 like skippy and um 741 00:26:27,840 --> 00:26:32,799 so could you explain a little bit about 742 00:26:30,320 --> 00:26:34,480 where things are now with modern test 743 00:26:32,799 --> 00:26:36,799 equipment that don't necessarily have 744 00:26:34,480 --> 00:26:39,120 those old style connectors on them 745 00:26:36,799 --> 00:26:41,840 yeah so modern 746 00:26:39,120 --> 00:26:45,200 modern test equipment will end up having 747 00:26:41,840 --> 00:26:47,120 usb quite often 748 00:26:45,200 --> 00:26:49,760 exactly what the transport is over usb 749 00:26:47,120 --> 00:26:51,600 can be a couple of things uh and 750 00:26:49,760 --> 00:26:54,000 ethernet for a lot of interface for 751 00:26:51,600 --> 00:26:55,600 devices where that makes sense which 752 00:26:54,000 --> 00:26:57,120 tends to be 753 00:26:55,600 --> 00:26:59,120 anything that's expected to be in a sort 754 00:26:57,120 --> 00:27:01,120 of system integrated use 755 00:26:59,120 --> 00:27:03,200 is more likely to have ethernet almost 756 00:27:01,120 --> 00:27:05,679 than usb 757 00:27:03,200 --> 00:27:06,880 so the usb can be usb serial on some 758 00:27:05,679 --> 00:27:07,840 devices 759 00:27:06,880 --> 00:27:09,039 on 760 00:27:07,840 --> 00:27:10,799 the sort of devices that would 761 00:27:09,039 --> 00:27:12,559 historically have had gpib from that 762 00:27:10,799 --> 00:27:16,159 vendor it's more likely to be the test 763 00:27:12,559 --> 00:27:18,799 and measurement class which is 764 00:27:16,159 --> 00:27:20,880 a closer definition um 765 00:27:18,799 --> 00:27:23,200 i've not played with it even though some 766 00:27:20,880 --> 00:27:25,120 of these devices i've used have usb 767 00:27:23,200 --> 00:27:26,559 ports that probably are class compliant 768 00:27:25,120 --> 00:27:28,720 because 769 00:27:26,559 --> 00:27:31,279 i have gpib and i have the cables this 770 00:27:28,720 --> 00:27:33,360 is in part the reason why test equipment 771 00:27:31,279 --> 00:27:34,480 for the last 15 years has still had gpib 772 00:27:33,360 --> 00:27:36,000 ports 773 00:27:34,480 --> 00:27:37,360 because we have the interfaces and we 774 00:27:36,000 --> 00:27:38,320 keep using them 775 00:27:37,360 --> 00:27:40,240 yeah 776 00:27:38,320 --> 00:27:41,919 well the the follow on from that when 777 00:27:40,240 --> 00:27:45,600 we're talking about connectivity on 778 00:27:41,919 --> 00:27:47,919 devices is how you pull 779 00:27:45,600 --> 00:27:49,919 data from multiple devices together into 780 00:27:47,919 --> 00:27:52,159 a single interface and many years ago of 781 00:27:49,919 --> 00:27:54,080 course the standard for that was labview 782 00:27:52,159 --> 00:27:57,039 or you know various other pieces of 783 00:27:54,080 --> 00:27:58,399 software um so do you 784 00:27:57,039 --> 00:28:00,080 see um 785 00:27:58,399 --> 00:28:01,760 basically what is the modern sort of 786 00:28:00,080 --> 00:28:03,919 equivalent to labview or how would you 787 00:28:01,760 --> 00:28:06,720 go about that i 788 00:28:03,919 --> 00:28:08,799 i've seen various attempts at it uh the 789 00:28:06,720 --> 00:28:10,799 company that makes the power supply 790 00:28:08,799 --> 00:28:12,399 that's just on my shelf there um 791 00:28:10,799 --> 00:28:14,159 evox which is an open source power 792 00:28:12,399 --> 00:28:16,399 supply project they've got an 793 00:28:14,159 --> 00:28:18,399 interesting little experiment thing i 794 00:28:16,399 --> 00:28:20,159 don't know if it supports generic gpib 795 00:28:18,399 --> 00:28:21,840 but it's it's an interesting project 796 00:28:20,159 --> 00:28:23,760 that's sort of a 797 00:28:21,840 --> 00:28:26,720 uh for those of you that have seen the 798 00:28:23,760 --> 00:28:29,039 various python notebook style 799 00:28:26,720 --> 00:28:31,840 environments it's a similar one aimed 800 00:28:29,039 --> 00:28:32,559 around test equipment 801 00:28:31,840 --> 00:28:35,279 i 802 00:28:32,559 --> 00:28:37,600 i would write python because 803 00:28:35,279 --> 00:28:39,840 most of my uses are going to be 804 00:28:37,600 --> 00:28:41,279 run a test and i probably want to run it 805 00:28:39,840 --> 00:28:44,799 headless somewhere i don't have to 806 00:28:41,279 --> 00:28:47,279 listen to the fans of the test equipment 807 00:28:44,799 --> 00:28:49,279 yes and you probably want to be um 808 00:28:47,279 --> 00:28:50,960 logging the data for future analysis 809 00:28:49,279 --> 00:28:53,520 you're not necessarily sitting there 810 00:28:50,960 --> 00:28:54,720 watching virtual gauges move and that 811 00:28:53,520 --> 00:28:56,559 sort of thing which is more what the 812 00:28:54,720 --> 00:28:59,520 labview 813 00:28:56,559 --> 00:29:01,520 ui is designed exactly um there is one 814 00:28:59,520 --> 00:29:02,640 trick that i did use that is was really 815 00:29:01,520 --> 00:29:03,760 helpful 816 00:29:02,640 --> 00:29:05,760 my 817 00:29:03,760 --> 00:29:09,279 although my multimeter actually has a 818 00:29:05,760 --> 00:29:12,000 scan card so it has eight inputs 819 00:29:09,279 --> 00:29:14,000 i couldn't be bothered configuring that 820 00:29:12,000 --> 00:29:15,520 but my multimeter has front and rear 821 00:29:14,000 --> 00:29:17,760 connectors 822 00:29:15,520 --> 00:29:19,679 so i put one and i needed one 823 00:29:17,760 --> 00:29:21,440 measurement from a different place so i 824 00:29:19,679 --> 00:29:23,039 put it on the rear connectors 825 00:29:21,440 --> 00:29:24,320 and my multimeter knows which connectors 826 00:29:23,039 --> 00:29:25,120 it's using 827 00:29:24,320 --> 00:29:26,960 so 828 00:29:25,120 --> 00:29:28,000 at the start of the measurement it would 829 00:29:26,960 --> 00:29:29,360 instruct 830 00:29:28,000 --> 00:29:31,360 the multimeter to switch to rear 831 00:29:29,360 --> 00:29:33,600 connectors which is to say it would put 832 00:29:31,360 --> 00:29:36,240 on the display switch to rear connectors 833 00:29:33,600 --> 00:29:37,120 and i push the button 834 00:29:36,240 --> 00:29:38,480 because 835 00:29:37,120 --> 00:29:39,919 a nice feature on a bunch of test 836 00:29:38,480 --> 00:29:42,240 equipment 837 00:29:39,919 --> 00:29:43,840 is that you can make it a display 838 00:29:42,240 --> 00:29:45,679 which means 839 00:29:43,840 --> 00:29:47,360 you don't just have to have the computer 840 00:29:45,679 --> 00:29:49,200 controlling it display things you make 841 00:29:47,360 --> 00:29:51,200 the equipment you want to touch 842 00:29:49,200 --> 00:29:53,760 tell you which button to push 843 00:29:51,200 --> 00:29:55,440 yeah so that was a cool feature there's 844 00:29:53,760 --> 00:29:58,399 this is why there's an image on twitter 845 00:29:55,440 --> 00:30:01,160 of my multimeter saying pc load letter 846 00:29:58,399 --> 00:30:03,520 because i was making a very bad hp joke 847 00:30:01,160 --> 00:30:05,120 [Laughter] 848 00:30:03,520 --> 00:30:06,559 oh cool 849 00:30:05,120 --> 00:30:08,640 okay um 850 00:30:06,559 --> 00:30:10,399 now are there any other questions i'm 851 00:30:08,640 --> 00:30:12,399 just checking we don't think we have any 852 00:30:10,399 --> 00:30:15,279 other questions from the chat 853 00:30:12,399 --> 00:30:17,279 um but thank you very much julian that's 854 00:30:15,279 --> 00:30:18,880 been really interesting this is a 855 00:30:17,279 --> 00:30:20,480 personal area that's really interested 856 00:30:18,880 --> 00:30:21,520 to me i'm always trying to figure out 857 00:30:20,480 --> 00:30:23,520 ways to 858 00:30:21,520 --> 00:30:25,760 capture data coming off instruments and 859 00:30:23,520 --> 00:30:27,600 share them on live streams in particular 860 00:30:25,760 --> 00:30:28,640 so things like capturing the scope 861 00:30:27,600 --> 00:30:31,120 interface 862 00:30:28,640 --> 00:30:32,399 and my multimeter and various other bits 863 00:30:31,120 --> 00:30:34,080 of equipment 864 00:30:32,399 --> 00:30:37,840 so yeah things 865 00:30:34,080 --> 00:30:39,840 it was very useful um 866 00:30:37,840 --> 00:30:41,919 the evox software is probably the the 867 00:30:39,840 --> 00:30:42,960 one i've most seen that seems like it 868 00:30:41,919 --> 00:30:44,799 would actually be really interesting 869 00:30:42,960 --> 00:30:45,919 i'll dig up a reference to it and put 870 00:30:44,799 --> 00:30:47,760 that in the 871 00:30:45,919 --> 00:30:49,919 open hardware discussion 872 00:30:47,760 --> 00:30:51,120 that'll be brilliant thanks julian okay 873 00:30:49,919 --> 00:30:53,600 well thank you very much for your 874 00:30:51,120 --> 00:30:55,279 presentation and everybody else 875 00:30:53,600 --> 00:30:56,960 please hang around we will have another 876 00:30:55,279 --> 00:30:59,679 presentation coming up starting i 877 00:30:56,960 --> 00:31:03,880 believe at five o'clock so 878 00:30:59,679 --> 00:31:03,880 thank you everybody and thanks julian