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

