• Week 317

    27 January 2019

    Finally, a week with the regular number of days in that began on a Monday! (From my perspective).

    Over at Bulb Labs, there was a good groove of thinking, writing, and talking. Sounds so vague, doesn’t it? I worked on a pile of research and writing, where synthesis – writing – was as key as the research itself, so that felt good. I’m looking forward to seeing how that went down next week. I also spent some time just talking to colleagues on Slack as a way of building work-relationships; there were some fire-emojis by the end of the week, so perhaps I was doing something right.

    Thursday, I went back to CaptionhubSelworthy – for a day I owed them prior to Christmas, that illness got in the way of. Nice to see the gang again – I managed to wrap the feature I was working on end-to-end, leaving it in a good place to get to deployment. I also helped debug a slightly strange feature in code relating to a file format I’m reasonably expert in now – turned out the bug was just some naive code I’d written a long while ago, and the fix wasn’t too hard to roll out. Exciting to see lots of other developments there, too – so nice to drop by.

    I paid my taxes. Boring, slightly stressful, but out of the way. And now there’s some time in the coming week to sort out some accountancy. Admin has been a bit of an overhead recently: there’s not been too much, but finding space in the week to do it has been more challenging than normal. Hoping to get back on top of that fast enough.

    16n got featured on Hackaday, which was pretty nice!

    And finally, at the end of the week, I went along to Parallel Worlds at the V&A. I had a great day out, and it did what I hope conferences will do: blow some cobwebs out of my brain and open up some new ideas. My notes are reminders of small projects to pick up and continue with, alongside things I learned from the sessions. It was also great to catch up with friends across the London games scene, and hear what they’re up to. A good end to a good week.

  • Weeks 313-316

    20 January 2019

    Let’s do this again.

    Weeks 313-314

    …were Christmas. No news, as a result.

    Weeks 315-316

    … and we’re back in the saddle.

    First up: prepping and delivering a second weekend of teaching on Hyper Island MA. I like the second weekend; the students are deep into the brief, we can deliver some more challenging (and unusual) talks and content, and push them a little more in general. Again, loads of great questions and discussions; some great guests, with a workshop from Ultra IOT and a talk from Wesley; and then, at the end, some excellent presentations. So pleased to see how they’d all developed. Every project had at least one straight up “quiet-round-of-applause” from me: some new insight, or technique for presenting material I’d not seen, or an idea for interaction. It was highly satisfying, and I was wiped out by the end of the three intensive days (after a full week of client work).

    Somewhere in week 314, before I went back into work proper, I wrapped up the work necessary to launch 16n – an abstract music controller. It’s sixteen faders, that output information in a variety of ways, and it’s up to musicians as to how to integrate it into their setups. Here, have a picture:

    Faderbank

    Rather than shipping this as a product, I’ve instead made the entire thing open source. The electronics schematics and board designs are CC-BY-SA, as are the panel designs; the firmware is MIT licensed. It means I can still bring them to market in a way, if I’d like, in due course – but for now, the community that’s eager to have them (because this has been in progress for a long while) can get on with making their own. Or, indeed, making them for each other; it’s very much fanufacture made flesh. There’s certainly been a nicely positive response so far – and we made Mouser sell out of the faders, for the time being…

    Around that, I’ve been settling into the gig at Bulb Labs: making contacts, meeting people, and thinking by writing and listening. The team is coming together, as are the inklings of the first few projects there. It’s going to be a difficult gig to write about even in my slightly obtuse manner, but perhaps there’ll be a way into it in due course. We’ll make the path by writing, so to speak.

    Hello, 2019. Let’s get on with this.

  • Weeks 312-313

    21 December 2018

    The final two working weeks of the year. In the midst of kicking off at Bulb, wrapping up at CaptionHub, and Christmas party season… I got a truly horrendous cold and spent several days in bed. Yuck.

    So there’s not a vast amount to report. My personal Trello account tells me I spent much of those two weeks when not at clients mainly just doing admin. Otherwise, I tried to wrap up one last feature at CaptionHub – as well as a bit of troubleshooting around STL file formats – and started getting my handle on the role at Bulb in the few days I had there. So far, there’s been a lot to take in, but the little team in Labs is great, and I’m looking forward to getting underway a little more next year.

    When I wondered why I was ill, it turned out that moving house, a long weekend of teaching, and a new gig all at once is a lot to take on board, and I think my body just said ‘no’. Endoftermitis is real: it’s like technical debt for your body, where you can no longer stave things off and it all comes crashing down. The only thing to do is to roll with it: accept you don’t want to get colleagues ill, do what you need to recover, remember that’s what the rainy-day funds are precisely for.

    A quieter end to the year than perhaps I envisaged, then, but an end nontheless. Next up: two weeks out of the studio and the office, resting up, getting ready for 2019. And then we start again.

    Onwards!

  • Week 311

    8 December 2018

    A busy week, especially after the disruption of moving house.

    I spent one day at CaptionHub on Selworthy, finishing up some the smart-quotes work and moving on to refining the design of downloading data.

    On Wednesday, I finally finished some prototype builds of 16n, and they’ve come out beautifully. I’m hoping to open-source the whole thing before Christmas, and get those prototypes to the musicians I’m making them for.

    Otherwise, I spent Thursday-to-Saturday teaching with Hyper Island: the first campus days of the Digital Technologies module of the Digital Management MA. I spent time earlier in the week refining and revising the course materials I’d be teaching – on Invention, AI and Machine Learning, and Data. The students were, as ever, a great bunch: engaged, sharp, and full of insightful discussion and questions. The best kind of classes.

    I get Sunday off, and then on Monday, I go to Bulb for Highrigg. It’s going to be a busy end to the year.

  • Week 310

    2 December 2018

    Busy week, in and out of the studio.

    On Selworthy, I spent some time wrapping up work on a new ingest format, and then spending time staring into the maw of character encoding – and, in particular, working out what our policy on ‘smart quotes’ is – and coming to the conclusion that rather than doing something automatically, we should offer up an option to end-users as to what they want the default to be. And so there’s some more work to wrap up next week on the UI for that.

    I continued with a bunch of work for next week’s teaching at Hyper Island – overhauling another talk, refining the brief with our pretend-client, going over what our guests would be doing. It’s going to be a bit nip and tuck to get things into place for next week, but it’s all going well, so that’s a relief.

    As I hoped, the metal panels for 16n arrived – and they’re beautiful. Perfect fits, really gorgeous objects, ties the thing together. Good to know all my CAD worked out. Had to order some 1mm longer standoffs to fit the underside screws into, and so come week 311 I’ll have a final thing for myself.

    And that was all there was time for: I moved house at the end of the week, which took me out of the studio. Hopefully we’ll return to normal service quickly.

  • Weeks 306-309

    25 November 2018

    Time is elided at the moment: I’m having a deliberately quiet period between projects and whilst lots of non-work life is all rather busy. So weeknotes are a bit more spread-out. But still worth doing.

    I’ve also started work on a new piece of personal process to perhaps make this – and a few other things – easier to manage. (Nothing magic: just using Trello to treat ‘myself’ as a project). We’ll see how that works out.

    Sharphaw didn’t end up happening – at least, not in the planned format. There might still be some work there in the future, but for now, that codename and work is on ice.

    I’ve been dealing with some metal suppliers from Germany and Poland, who are making prototype panels for 16n. It looks like the panels will be arriving in week 310, which is exciting for that project (and also to determine if my CAD work has come out correct).

    In week 309, I spent the afternoon at After The Flood, taking part in a quick workshop. Always good to work with the teams they put together, and I think we got to some useful places in it.

    I’m gearing up for the Digital Technologies module on the Hyper Island MA I’ll be teaching on at the end of the year. Some of the work has needed minor touch-ups, although there’s one talk that’ll get more of a rewrite in week 310. I’ve also been securing final guests, and nailing down the project brief for the students.

    Longer-term plans are emerging, too. My time on Selworthy is winding down. I’m going to wrap up there by the end of the year. And I should really explain it properly, after 3.5 years! I’ll write it up in depth soon, I hope. Great ride.

    And, in the meantime: dotted the _i_s on Highrigg: a part-time contract that’ll kick off at the end of the year, and we’ll see how we go from there. Meaty, a new set of challenges for me: exciting and scary at once. Sounds like a good thing to go into 2019 with.

  • Weeks 298-305

    29 October 2018

    Lots of time without weeknotes. Oops. But: lots has been going on.

    Notably, Lambrigg wrapped up. The final weeks weren’t too crunchy, thankfully: just somesome busy, intense days to get to the finish line. In the final week we designed and wrote a new demo, re-coded both demos so that they could be more easily shared with colleagues, finalised two hardware prototypes, wrote our report and presentation deck, and got the whole thing into a shippable state. Phew.

    It’s been a really nice shape of project. A research and development piece beginning – about three months ago – with background research, interviews, design reporting, a bit of strategy, and helping colleagues in the management team develop strategy further. Then, we moved into prototyping some preferred approaches in a manner that could be taken further if needed.

    Across the project, I’ve conducted research interviews, done desk research into design and technology, explored possible technical approaches, designed some game prototypes, built software and firmware in Python, Ruby, Java/Processing, and C++. I’ve designed, fabricated and built up two different custom circuit boards that interface with one another, and built end-to-end prototypes that interface with a computer. I’ve produced CAD models for those boards for Tim to design around. By the end, we had turned all that into coherent physical prototypes with working demos.

    That feels like a lot. Meaty work.

    And then, I promptly got ill with endoftermitis: the come-down after pushing perhaps a wee bit hard. So I was off for a bit, and I think that threw my weeknotes muscle.

    Since then, I’ve been working on a few things.

    Firstly, decommissioning Holmfell – Erica Scourti’s _Empathy Deck_ – now that the Twitter API no longer supports, well, doing anything fun. We’ve said goodbye, and now we’re working out how best to properly archive a web project. That’s entailed not just taking dumps, but writing documentation for future users on what they are and how to interact with them. For instance, I’ve been turning some of the most significant Postgres tables into CSV – after all, as I say a lot, Excel is the prototyping tool everybody has on their desk, so it’s good to leave things in a state that doesn’t require me.

    It also turns out the project generated around 17gb of images in its lifespan, so I’ve been trying to archive that in the most space- and time-efficient way possible. Unsurprisingly, it turns out that a little rsync goes a long way.

    Over on Selworthy, we’ve been thinking a bit about infrastructure and operations, and choosing our next focus for incremental, ongoing improvement. I’ve also been prototyping some new interactions, which are going to be much easier to integrate with the existing front-end after the overhaul the team made to our front-end stack more recently.

    I’ve started the work around preparing for this year’s Hyper Island Digital Technologies module. This year, it’s more of an incremental overhaul on last year, but it’s been good to start thinking about the structure and narrative of the module up-front. There’ll be more work on that in the weeks to come!

    I’ve started conversations about a small R&D project called Sharphaw, which ties together some of my experience and expertise to help a company explore taking the objects they make and connecting them to internet services – a bit of IOT prototyping, a bit of thinking about service design, and fabricating a few things.

    And, over on the music technology side: a small production run of kits for Thonk, and wrapping up an open-source community project I’ve been working on for a good while. I’m hoping to release that in week 306!

    Phew. That’s a lot. Let’s try to do this more often.

  • Weeks 296-297

    3 September 2018

    Fortnightnotes, owing to a long weekend away over the bank holiday.

    At the end of week 296, Lambrigg had its own internal demo; Tim and I were cranking fairly hard to get that done – three days of code, audio recording, hasty art direction and game design.

    The demo went very well: really well received, clearly understood, and loads of good questions (which is always a good sign). Initially I was relieved – everything worked, we met our goals – but I also left the demo highly satisifed with the positive response and enthusiastic feedback: I thought we’d done a fair pile of work to get it to where it was, and the team communicated that they could see that. So that’s great. Tim and I regrouped at the beginning of week 297 to set direction for the final phase of the project, and that’s now underway.

    Only one day on Selworthy this fortnight. I sat down with Erik and we went over his first spike of some heavy front-end replacement work he’s been doing. This ended up being a great day of remote pairing, with two notable successes. Firstly, the brief feedback I had so far was resolved easily and by the pair of us, and this proved that the new code was much more maintainable. We could add features and develop atop it easily – one of the things we hoped would be true already proving itself. And secondly, I managed to transfer a lot of knowledge to Erik about the next steps for that code – not just what would need doing, but how the systems he was replacing would work. Lots of things trapped in tangly Javascript and my head now out and shared in the world. I’m really looking forward to seeing the team’s progress with this pile of code in week 298.

    The bank holiday weekend extended a few days either side for family obligations, and then, just as I got back to work in week 297, I had a day sick at home with a brief headcold. Annoying! I recovered over the weekend, so week 298 begins on Monday (with these notes).

  • Weeks 294-295

    20 August 2018

    Weeknotes are quiet at the moment, mainly because I’m fairly head-down and there’s just not a lot to see or show.

    Over on Selworthy, I’ve been fettling some issues that involve interfacing remotely with other people’s tools and workflows. That makes the feedback loop a little slow, but we’re getting there, and I’m pleased with the route we’ve taken. More excitingly, we’re working at overhauling some front-end code I wrote a long while ago and bringing it in line with our more modern tooling – notably, better data-binding and more efficient DOM interactions. It’s the last really large piece of legacy code: a significant chunk of the app we’ve just left alone for a while, and now’s a good opportunity to rework it – not just for rewritings’ sake, but also for performance optimisations, and importantly – from my perspective – passing on this large chunk of knowledge to the team. Like much genuine technical debt, it’s been worth holding onto for a while, and now it’s the right time to pay it off.

    Lambrigg marches on to an interim deadline towards the end of the month. There’s been lots of fabrication and prototyping – this week, I’ve been wrangling Python, C++, and the finer details of I2C busses to bring things closer to life. I made a decent breakthrough at the end of week 294 that turned week 295 into a week of good pace and functionality development. I even finally taught myself to write C++ classes, which, it turn out, I should have done long ago: they work exactly like classes do in my head, and they’re making things a lot tidier. Hopefully my embedded code in future will become tidier!

    And finally, in the minutes between things, I wrapped up a few prototype components for Musuem in a Box; I’m hoping to deliver those for week 296. Some time evaluating specific ICs was well spent, and I think they’ve come together well.

  • Week 293

    5 August 2018

    What the stacks I’m working across currently contain:

    • Ruby, Rails
    • Javascript
    • HTML/CSS
    • the depths of AWS infrastructure(s)
    • C++ / Openframeworks
    • Java / Processing
    • Python
    • Embedded C
    • CAD/CAM
    • PCB EDA and manufacture

    and, of course, they all join together: breadboards turn into schematics and circuitboards, which get exported to CAD tools for colleagues to design around; firmware for those boards gets written and ends up talking to Processing demo harnesses on my desktop. Software written on the laptop turns into code hosted on more complex, automated AWS infrastructures.

    Some days, it feels like a lot to wrap my head around. When I write it out, I’m reminded that it is.

    The week’s work took in some dives into performance work on Selworthy, going over some quite old code of mine and working out how to either improve it or mothball it – and if so, how to do so most efficiently.

    Over on Lambrigg, I spent some time working up microcontroller code and hardware prototypes, exploring a new-to-me technology that we hoped would prove fruitful. So far, things are going well: a quick mechanical prototype and code demo works how I hoped, the simple circuit boards I ordered up for it have all gone together smoothly, and I’m hoping to carry on that work next week.

    I also spent a lot of time just thinking on Lambrigg: moving jigsaw pieces around in my head. Frustrating, in that there wasn’t a lot to show for it, but I’m slowly understanding how pieces might fit together in future.

    In other words: a busy week that’s quiet from the outside and fairly complex from the inside – not helped by the heat, which is making the act of thought truly challenging at times.

  • Weeks 290-292

    29 July 2018

    I took week 290 off from Lambrigg whilst the team regrouped, based on our presentation at the end of Week 289. But come 291, I was back into it, and we were really diving into a period of thinking-through-making: ideating again, but this time with our hands, rather than via deskthinking.

    And as a result, just right now, I’m a bit in the weeds. Which is to say: in this period of thinking-through-making, the thinking and the making are both proving equally hard.

    The hot weather hasn’t helped with the former – I just haven’t had enough brain on tap some days. But the latter has become very fine-grained: I’m exploring techniques and materials by working with them, and it turns out that they are difficult materials to work with. So the progress is slow, as I try to bring my knowledge – no, my understanding – of what’s going on up to speed. Trying to get good enough at something for my sense of smell to kick in. I’d hoped that’d have happened by now, but it hasn’t quite. But I got some good steers from Tim at the end of week 292, so have a few things to try in 293.

    Still, a busy few weeks, jumping around a big stack: writing some OpenFrameworks, waiting for said C++ to compile, spending some time collaborating on CAD via Fusion 360, designing prototype circuit boards (and CAD models of them), and getting those fabbed up. But the hard stuff is the programming – right now, anyway.

    Selworthy marches on – a successful end to an initial R&D spike there (namely: we want to take it forward, and continue our QA tests on it) – and then back into some file format hexadecimal fun.

    I’ve spent some time catching up with colleagues and peers in the past few weeks, and that’s been really useful. A long lunch with Nick from Playdeo; some good chats with Jim; and a long-overdue catchup with Mike. Lots of different perspectives to apply to the world and chat about – technologies and teams; narrative and design; objects and design processes. Really good for the brain, and lovely folks one and all.

    I also spent some time meeting some Interim CTOs and talking about that particular role. I’m thinking a little about what broader shapes of work might look like in the future, and testing my appetites. This certainly helped put some of my own other work in perspective – understanding what I’ve grown at and where I’m going to have to get over some of my own tendencies or preferences if I want to move into a particular direction.

    And all this after Matt W wrote a prehistory of weeknotes over on the Job Garden medium. I would apologise for the whiplash perspective shifts in my notes – from nice high-level progress down to a surprising amount of detail about chips or code or whatever – but I’ll be honest and say it’s semi-deliberate: a whole bunch of my work is about thought and abstraction and applying a long history of knowledge… but there’s also a lot that’s still about thinking with my hands, about developing skills and understanding through doing, and some weeks, I’m just stuck in the doing, so that’s what you’re getting in my notes. If you get whiplash… well, so do I, some days! But it’s some of the fun of the work, too.

    Let’s get back on the wagon, though, because weeknotes become less useful at a distance: monthnotes have such a different feel. The point of this isn’t just sharing progress; it’s also for me, and being able to keep a closer eye on the shape of my weeks. If that means making the time to do them faster… that might be the way they get done for now.

    Anyhow. That’s enough to catch up on these three weeks. Good progress all around, but it’s all making my head feel very full right now. Onwards!

  • Weeks 286-289

    8 July 2018

    It’s been a while without notes. That’s mainly because I have a lot on: Lambrigg has been fair motoring, and multiple clients filling an entire working week means notes and admin get pushed to the weekends, and some days, that means weeknotes just don’t happen. My bad.

    Fortunately, things are in a loosely steady state:

    • Lots of work on Lambrigg over at Sensible Object to get through the first main phase of the project. That’s mainly mean I’ve been in a research mode – lots of searching, reading, thinking, writing, and also conducting a lot of interviews in person and on the phone. We got to a good place at the end of Week 289 to present our research to the team, and I’m very pleased with how that turned out. We’re regrouping, and then working out what comes next.
    • Selworthy is moving apace: the team made some chunky infrastructure changes that all went very smoothly, and I continued some spelunking on more experimental work. The tech team is really solid – and growing – and my very limited time there is now down to advisory work or ‘special projects’. Which, at the moment, are proving to be challenging (the good kind) and challenging (the bad kind) in equal measure.
    • I made a small but useful MIDI controller for Richard, which was a nice way to use some CAD work to push out a simple tool for a friend to control virtual instruments with.
    • The other musical tool I’m working on, 16n, has moved forward a little, and in week 290 I should be building up the latest prototypes. More to report before the month is out, I hope!
    • And finally, in other Sensible Object news, the team there launched When in Rome, their travel trivia boardgame for Amazon Alexa. I had a very small part to play in this – Selside was a piece of back-end tooling around content management and production for this game. It’s exciting to see it in the world and in the hands of strangers – who seem to be enjoying it. Congratulations to the whole team; it was a hectic final month and they pulled off something good.

    And that’s everything. Let’s see if I can’t get these notes into something more regular for next week.

  • Weeks 282-285

    10 June 2018

    Four weeks to write about.

    Since returning from holiday, existing projects have motored forward, and a notable large one has emerged to take me through to the autumn.

    First, my own work – Longcrag prototypes arrived, and I assembled them and flashed them. Excitingly, they worked entirely first time. So that’s really positive: no bugs on the software, no bugs on the hardware. The only question now is to refine the BOM, address any oversights in the hardware, and prototype a front panel. Then I have to consider if I want to manufacture the object.

    I spoke to Emma about decomissioning our art project – we came up with a process we’re happy with.

    I fettled some issues that emerged on Selside, dealing with feedback, and looking into moving it into production infrastructure. It appears to have continued to be a useful tool, so I’m pleased with that.

    Selworthy motors as ever. I wrapped work on a feature that’s had me deep in Hex Fiend and building an internal library, which ended up using Braid to manage the dependency, and that turned out to be a tool I’ll use again in future.

    Finally, a new project emerges: it’s called Lambrigg, and it’s a longer project with Sensible Object. It’s going to be several months of R&D in a space that combines lots of my interests and expertise – games, toys, interaction design, connected objects, embedded hardware. As an R&D project, I’m going to have to be fairly obtuse about it here, but it’s going to be a good few months of work, hopefully going from exploration through to prototyping. I’m excited.

    And that means I’m pretty busy for the next few months, in lots of nice spaces: a little web and software work on Selworthy, my own music/electronics projects, and my main focus on Lambrigg for a few months. Good stuff.

  • Weeks 280-281

    16 May 2018

    No weeknotes. On vacation!

  • Week 279

    16 May 2018

    A very busy week before vacation.

    I spent my Selworthy time wrangling Javascript and discussing infrastructure with the team – finalising swapping out a major library before I went away.

    Selside was a fairly crunchy race to deliver a fair few features. As the recording process went on, lots of necessary tweaks emerged, to match both the human processes and the needs of the developers. That meant adding new fields in the system, adding pages and functionality to make the users’ lives easier, altering the data model to match the needs that weren’t immediate at the beginning, and so forth. One thorny issue kept me busy on Saturday morning, but other than that, enough was in place to make the work whilst I was away possible.

    I spent Wednesday and Thursday with some of the Makerversity crew supporting an internal hackathon for a corporate client. This turned out to be a lot of fun: helping teams develop and design product ideas, introducing them to some design methodologies, and in my case, supporting a lot of people’s electronics builds. Lots of people designed their first serial protocol, and my major takeaway was discovering how good the Node serial tools are for working with Arduino boards. Definitely enjoyable, and great to spend some time with some of the extended MV family.

    Finally, I ordered various prototyping parts for some Longcrag projects: the revised version of the Corex-based board, and some final drafts of boards and panels to arrive whilst I was away.

    With all that out of the way, I stuck the out of office on, shuttered the studio, so to speak, and headed out for a two-week holiday. Normal service resumes in week 282.

  • Week 278

    23 April 2018

    Firing all cylinders this week, with a full slate of work and good progress.

    A day on Selworthy spent discussing infrastructure with the team, fixing some minor issues, and continuing the work last week on replacing a key video library.

    Several days on Selside with the Sensible Object team. Lots of features added including on-the-fly transcoding, helping the content team preview that transcoding, working to integrate the management tool with development, and chatting to the audio and content teams about quality-of-life improvements. It’s really become an end-to-end tool already, which is great – what it needed to be – and it was satisfying when, after a lot of measuring twice before I cut once, we successfully back-transcoded all the files that had been uploaded before I added that functionality.

    After last week’s slightly unsatisfying end to the week on the Longcrag R&D, this week was much more successful. On Monday I sat down with a hot-air gun to debug the shorts on the board I’d made last Friday, and sure enough, it was paste that had flowed under the chip. So I started fresh, using the Makerversity stereo microscope to triple-check my work. The microscope helped, but now I’m definitely happier about soldering QFP packages by hand! I added the few patch wires I knew I needed, and still no joy.

    I returned to the EFM32 datasheet. Bear in mind that when we say ‘datasheet’ for a 32-bit microcontroller, these things can be hundreds to thousands of pages long. Anyhow, early on, it was made clear that regardless of whether or not I was using the ADC, I needed to be supplying the analog voltage reference with power as well for the chip to even function. I was a bit stumped on how to do that – the two pins weren’t connected to anything. It looked like it was time to tweak the board layout and order a new prototype.

    After bashing heads with a friend on Friday lunchtime, I realised that we could just bridge a whole pile of pins on the south-side of the chip to connect the AVDD pins to VCC. So one more big blob of solder… and all of a sudden, the J-Link I’d connected to the headers I’d broken out detected the chip. One click from the Silicon Labs IDE and the code was flashed to the chip.

    This was hugely exciting, and I quickly populated all the remaining parts on the board to confirm functionality. Sure enough, everything worked as expected: backwards. I’d added transistors to all the outputs for protection and to lift the voltage… so all my outputs that were driving them high now needed to drive them low. I rewrote some code, and it just compiled, flashed to the board… and worked first time.

    After Monday’s debugging, Friday’s fixes were only an hour or so after office hours, but hugely successful: I had confirmation that, largely, the board layout was fine and the only issues were my understandings of MCU power requirements. I had the confirmation that my code works, and the confirmation that my custom programming header was fine. I also had confirmation that for all the pain points, this was definitely the best 32-bit MCU environment for my needs for now – I was seriously considering junking all this and moving to STM32.

    So now the board looks like this:

    Photo 20 04 2018 18 34 54

    …and it works. All those jumper wires and that huge solder blob at the bottom of the chip are my fixes and patches – what hardware bugfixing looks like!

    Whilst last week’s R&D was frustrating, I know that the plan of attack I formulated for Monday was the right one, and as expected, it was a minor error on my part that was leading to major frustration. Firmware and hardware always demand a calmer mind on my part, and good to see it paid off. And, best of all: I immediately know what the next steps are, and I have the platform to build upon.

    So: some successful days of client work, and an eventually-successful period of R&D with some good learnings; that feels like a strong week.

  • Week 277

    17 April 2018

    Three things to talk about this week: Selworthy, Selside, and soldering very small chips.

    A day on Selworthy focused on Javascript – replacing one video library with another, writing a plugin to make that transition easier, and tidying up some code. By the end of the day, I had feature parity between the old version and the new, which is good: it’ll make swapping that in easier, and make future features possible. A little painful returning to some many-years-ago Javascript, but good to see that some of the decisions I made a few years ago still made sense.

    Like a Pokémon from a bush, a new piece of work has emerged, called Selside, working with the team at Sensible Object to build a piece of tooling for a new product they’re working on.

    The tool is not complex, technically: it’s just a web UI for content and asset management. It’s a task I often end up doing: replacing or augmenting a spreadsheet that’s beginning to serve more tasks than just a collaborative spreadsheet can.

    But the tool is more than software: it’s also about building a workflow. It has a lot of stakeholders across the company, with equal but very different needs, and various needs to balance. They also needed to start using the tool ASAP, so in three days I built up a first version – perhaps more an MVP than a 1.0 – and they started using it.

    This is a task I quite enjoy, because tooling always turns out to be more than just tooling. I’m going to spend some time over the coming months continuing to develop the tool and integrating with more stakeholders. I also hope we’ll develop the workflow itself – incorporating feedback from across the team, to make the process the tool supports better.

    In “hardware is hard“ news: the Silicon Labs prototype I’m building is… proving challenging. My first attempt at hot-air reflow with a stencil to solder the QFP48-sized package microcontroller looked successful. However, bring-up failed badly and it looked like I’d managed to first bridge 12V and GND – easily fixed – and then, more annoyingly for the microcontroller – I’d also bridged 3.3V and GND somewhere in the reflow process.

    Try as I might, I just couldn’t fix this second bridge. In the process of trying to fix it, I fair mangled a pair of QFP microcontrollers. To make things worse, owing to a busy week, I managed to do all of this late on Friday, which made me feel pretty rubbish – it felt like a lot of my problems were coming down to poor dexterity on my part. And, after a week of successful client work, I’d hoped I’d be able to have similar successes with my own, self-initiated projects. Instead, it felt like I’d ended the week on a low.

    But there was time to think about it. The real lesson here is not about soldering tiny SMD packages; the real lesson is about binding my identity to my work. Sometimes, when work is hard, or goes badly, I feel bad about myself. In fact, this is just a small blip. If it had worked, maybe there’d have been issues with my board layout that required a second run, or the code might have needed more work than I realise. So it’s not like this is the massive blocker that defines the project.

    It also made me realise it might help to re-evaluate why I’m doing the project, and set some explicit goals for it. Because I think there’s still reasons to be doing it, and I it might help to check if I’m meeting my goals or not. And perhaps it’s then worth taking another crack.

  • Weeks 275-276

    9 April 2018

    My time over the fortnight around Easter was spent on some Selworthy R&D, wrapping up a Foxfield production run, and continuing various pieces of hardware R&D.

    Over on Selworthy, I finished up my first pass at the stand-alone library I’ve been working on and delivered an end-to-end test of its output. In week 276, I moved onto R&D around HLS video streaming – not only the various FFMpeg incantations to generate it, but also exploring how much of our client we’d have to replace to implement it, and how best to retain feature parity. The answer is that the key features will transfer over fine, but we’re probably going to have to replace one particular video library, and so my continued scoping – for now – will be about delivering that feature parity.

    After various pokes and prods, my PCB vendor in China delivered a batch of front panels that were correct – following some production delays – and that meant I could box up a Foxfield/Longcrag production run and send it to Thonk.

    This also confirmed my new approach to panel manufacture is successful, and that opens up some of the otherwise tight margins on future Foxfield products – which are nearly ready to offer up, I think.

    Over on the 16n project, we saw our first prototype aluminium panel, which looks great. The next move is to make a full prototype of this version – version 1.25 – and confirm everything fits as expected. I think fit/finish will be fine; the key thing is confirming sizes of standoffs and screws. Once that’s done, we’re on to looking into manufacture routines.

    As part of that, Brendon shared some calculations he’s previously used around costings for hardware runs, which were really illuminating, particularly for understanding how much that looks like ‘profit’ is, in fact, really just margin and contingency. It’s helped me understand what a particular idea I currently have might involve, too.

    I also continued work on a small Longcrag prototype that I’m designing for manufacture. Will this ever happen? I don’t know. Why do I keep spending time on it, then? It’s a good question. It’s certainly intellectually interesting. And I’m learning a lot. It’s definitely not hit a NO GO condition, though it’s getting nearer to that point, perhaps.

    On this DFM prototype, I assembled a test board. This is significant for a few reasons; notably, it’s the first board designed around the Silicon Labs chip I’ve chosen to use. That chip happens to be in a QFP48 package, which is about at the limits of what I’ve previously hand-soldered and, sure enough, it turns out my hand soldering is possibly not up to the job. The idea is to build up this prototype, and flash it via the SWD interface I’ve broken out on the board. That would prove that my layout for the chip and SWD interface were correct.

    I spent a lot of Friday trying to do this over a JLink, with no joy. It’s not clear why, however. I patched a minor mistake on the board, tested the pinouts with a multimeter; I am pretty sure the board is correct. But it still could be a manufacturing fault – ie, my soldering. My plan for next week is to use a stencil, solderpaste, and a hot air reflow station to try to make a more definite connection between the QFP48 and the board. If that doesn’t work… I might be throwing my hands up in the air, into a NO GO configuration.

    Why would that be a NO GO? Because it’s tiring, and I’m heading towards a point where I’m no longer learning or moving forward; all I’ve got to is a sticking point, and maybe going around would be better. But we’re not totally out yet. So another afternoon on this, still. I remain hopeful. Of course, if this is a GO, we open a whole new set of GO/NO GO branches – finishing firmware, for starters, and then trying to work out if there’s even a market for this.

    I also managed to fit in some more social engagements. I spent a nice lunchtime with Nick and Timo at Playdeo. Mainly just a catch-up with old colleagues, friendly chat with peers in the industry, but also good to talk shop with other people working between technology and design, gain some perspective, and tickle each others’ imaginations. Good for the soul.

    And on Friday, I got over to a BBC R&D event exploring the artistic application of voice assistants, pairing technologists with musicians and sound artists. Some familiar and new faces, some great performances, and good chat afterwards. Also good for the soul.

  • Week 274

    26 March 2018

    I’ve largely stepped back from Selworthy now, spending a regularly day a week with the team reviewing work, looking at the future, and doing R&D on specific features or technologies.

    However, I’ve taken on a short project for the client in the run-up to Easter. An old, abandoned library turned out to not be cutting the mustard for us, so I’m working on building a replacement. It’s exactly the sort of project I enjoy: gnarly text and character processing, working to a well-defined (if complex) spec for the format, neatly stand-alone and greenfield, and with obvious measures of success.

    It’s also been a chance to learn a few new things; I’ve enjoyed working with the bindata gem a lot, which has made processing binary files far more straightforward and has also given me a parser for the format at the same time as building a formatter for it – nicely two-way.

    By the end of the week, I was parsing the format correctly, and had started to break the back of encoding the format. I’d imagine there’s another handful of days to go – first to finish up the first pass at encoding, and then a lot of fettling to match the sample files we’re working to, and the nuanace of the spec.

    Over on Longcrag, a bunch of cables arrived from China, and so an hour with some cutters got another Foxfield product bagged up and ready to go to wholesale. Now I’m just waiting on a final set of front panels for one product – on Monday, I found what looks like a much better way to avoid the fabrication issues I found in Week 273 without having to change supplier. We’ll know by next week. I also started working down my Trello board of what’s left on the second phase of products, which has been stalled for far too long and needs bringing into land pronto. It turns out, a chunky Trello board helped enumerate what was left, and give me easy threads to latch onto and start moving into the DONE column. Good stuff.

  • Weeks 272-273

    19 March 2018

    Fortnightnotes, then, partly because of illness and travel.

    Selworthy has settled into a new routine. I’m spending a fraction over a day a week on this, typically, doing R&D into some tricky new areas, discussing features and development with the team, pinpointing specific pain points, and reviewing code. It looks like there might be some odd development spikes in the future, but otherwise, I’m happy with this.

    I continued working on a new Longcrag/Foxfield order: lots of kits sorted, a minor setback involving some fabrication in China, but not much bagging on my end left to go – the main thing remaining is the waiting involved in global supply chains.

    I continued hacking away a bit on the hardware design of 16n. That led into an avenue of learning about sectional analysis to confirm design:

    NewImage

    …and spitting out a lot of renders:

    NewImage

    My CAD chops have got quite strong now. Probably spent enough time on this, though!

    Beyond that, I had a day or two off to visit family, and lost a day or two to illness, which was annoying.

    With this Foxfield run wrapping up, and Selworthy dialled back, I’m going to have some availability coming up – not quite full time, but not far off, and well suited to project-shaped work. So I’m thinking about what I’m interested in.

    Things I appear to be interested in: software, mainly on the web; building useful tools for others to work with; small, genuinely cross-disciplinary teams; collaboration rather than implementation; still calling interaction design interaction design; connected objects; audio, music and sound; hardware/software hybrids.

    If any of that tickles your fancy, maybe drop me a line. I’ll keep thinking if I have a better way of describing what I’m looking for.