Working with ChatGPT

I’ll let ChatGPT explain what I’ve been up to today:

  1. Context: We’re building a framework to store and load settings for a MIDI controller using CircuitPython on a Raspberry Pi PICO.

  2. Challenge: Lists of settings needed to handle both uniform and mixed object types while keeping the JSON output compact and memory-efficient.

  3. Solution: We dynamically added type information to list keys when uniform or to individual items when mixed, ensuring deserialization works flawlessly.

  4. Result: A smart, efficient system that elegantly handles nested settings and mixed data—perfect for the PICO’s constraints and your MIDI Cheesebox magic. 🎶🧀

Sometimes it is actually the hardware which is broken

I like a busy workbench

Done some more work on the new Cheesebox. It’s taking shape nicely. I’ve ended up making an enormous device with speakers, stereo amplifier and lots of leds. I’ve even got the OLED display working. I’d tested it with a spare display and come to the conclusion that my software was at fault. As if. It turns out that my spare display was broken too. I dug out another from a different batch and that works fine. Turns out that sometimes it isn’t actually my fault after all.

Cottingham Church looking fine

I’m trying a new, cheaper film developing service, filmprocessing.co.uk. I like them because they are happy to just develop a film and send back the negatives without scanning them. This makes the process half the previous price. I’m not unhappy with the results.

I’m getting better at holding the camera straight….

I’m starting to really prefer the look of film pictures.

Surface Mount Soldering

Heating up Nicely

I’m making some more Cheesebox synthesizers. I’ve got a plan to make a monstrous device with pixel rings, grids and speakers. For the insides I’m assembling some circuit boards using surface mount technology. I’ve got a couple working so far, with a third just cooling down. These are the things I have learned today:

  • Surface mounting is very doable as long as you have the right stuff:

    • A little hotplate

    • Solder paste that melts at a low temperature in a syrninge

    • Some right angle tweezers

    • A trigger thing for your solder syringe. This makes it much easier to get exactly the right amount of solder paste on each pad.

    • No feeling in the tips of your fingers (you already have this if you have previously built and maintained a 3D printer)

  • When you are squirting solder paste onto a pad, lift the needle up vertically before moving it to the left or right towards the next pad. This will give you a good looking vertical “blob”. It’s a bit like icing a cake. Not that I’ve iced many cakes to be honest.

  • I set the heated bed temperature to 170 degrees, with my solder specified as melting at 128. This seemed to work OK for my oven. When the hotplate hit 170 degrees I turned it off. I then used a piece of card to slide the board off the hotplate onto card. A bit like how you move pizzas around.

  • Watching the solder melt and surface tension pull things into position is great. I put one of the leds in the wrong way round and it was fun to watch it try to rotate into the right position. It was an easy fix. I just picked the led up and dropped it back down in the right orientation.

  • The best way to find out if a circuit board is hot is not to touch it with your fingers.

YOu adjust the screw as the plunger goes into the syrninge

I bought the yellow trigger assembly on AliExpress. It is much easier to use than the plunger.

Tomorrow I’m going to put a couple of boards into cases and start working on the code.

Return of the PICO MIDI CheeseBox

this passes for a tidy desktop in my house

I invented the PICO Midi Cheesebox a while back. It was great fun to make. It performs as a mini-sequencer keyboard, powered by a PICO and using a 12 pixel ring and 12 buttons to control it. A Python program inside gives you a three track sequencer with keyboard input.

The cheesebox is designed to be used as a MIDI input device, it doesn’t have any sound generation built-in. It works really well with my Chocolate Synthbox which contains a Raspberry Pi running a Pure Data synthesizer program.

Then, just before Christmas, Brian put me onto a new device from M5Stack. The Unit Synth contains an SAM2695 audio synthesizer and responds to General Midi commands to make sounds via a tiny built in speaker. I got one to play with and one as a present for number one son. It works really well, although the speaker is a bit weedy.

I did some more digging and discovered the Unit MIDI which contains the same synthesizer chip, replaces the speaker with a 3.5mm stereo jack socket and adds a couple of proper MIDI connections. So I got one of those as well. the aim now is to make a super-cheesebox which contains a Unit MIDI and some proper speakers. I’ve got the cheesebox controlling the synth, next thing to do is package it and then tidy up the software a bit.

The OLED screen doesn’t work at the moment.

I’m going to be using one of the CheeseBox PCBs I had made a while back, fitted into a newly designed case. This means more surface mounting shenanigans. Such fun.

CheeseBox with added OLED

I thought it might be fun to add an OLED screen to the CheeseBox when we made the printed circuit board. I’ve just soldered one into place and written a little driver for it. I rather like the look. Now I have to design a box and some buttons.

The wire is there to bypass a component that it turns out we don’t need. I’d added a level converter to take the 3.3 volt led signal up to 5 volts, because sometimes the Neopixels that we are using prefer this level. However, they seem to work just fine without it.

If you’re wondering what the back of the board looks like, and just how badly it is possible to solder a PICO to some pads on a PCB, then you can see the answer above…..

PICO MIDI Cheese Box Constructed

When you put your ideas out on the internets and in magazines it is always nice to see someone actually build one. “viragored” has not just built a device though, they’ve also designed their own case because I forgot to publish the design files. I’ve put my designs on GitHub now. You can find them here. But I think I like that the new one is better. I like the idea of using “push pins” to hold components in place rather than screws.

Developer Developer Developer Videos now live

A few weeks ago I had a great time talking about making music with the Raspberry Pi PICO and Pure Data at the Developer Developer Developer Conference. All the videos are now online. You can find them on the conference YouTube channel here.

If you want to watch my video (and why would you not) you can click on the link above.

The Crackers Controller Lives!

20211003_083230689_iOS (2).jpg

After another fun day of coding (I really know how to enjoy myself) the “Crackers Controller” now lives. You can adjust settings by turning the encoders and the value is displayed on the pixel ring. If you press the encoder in you can switch to another setting value (above we have “blue” and “yellow” settings. The settings are sent out as MIDI control change messages. The controller works with the MIDI cheesebox you can see on the left, which will provide the note input. Now I need to write the Pure Data patch that will make all the sounds.

"Crackers" PICO Midi Controller takes shape

external.jpg

I’m building a partner device for the “PICO Midi CheeseBox”. This gives four rotary controllers with pixel ring feedback displays which you’ll be able to use to control MIDI playback. It’s called the “Crackers PICO Midi controller”. Why? Take a look inside..

internals.jpg

The wiring is a bit crazy, but it worked first time. I’ve got a new build technique called “making the design and writing the drivers before I build the device”. You can see the circuit diagram and the Circuit Python code creates controller instances for each of the four inputs.

The controller will be making an appearance in a future HackSpace magazine, when I’m going to be using it to control a Pure Data synthesizer.

Unexpected art

broken design.jpg

Sometimes your failures are more interesting than your successes. I’ve been doing some work to design a new music controller based on the cheesebox, but adding rounded corners. There are lots of ways to make rounded corners, FreeCAD even has a command called “Fillet” that will do this for you. But I thought I’d do it the hard way, which involves cutting off each corner and replacing it with a cylinder. You can see the results of my first attempt above. I think it is quite artistic. And hey, one corner correct out of four isn’t a bad score..

workingdesign.jpg

This is the final version. There are four controller rings with lights, and a button grid and controller on the bottom. The only problem with this design is that it won’t fit on the printer bed………

final design.png

This is the final, printer friendly, design.

20210927_083238347_iOS (2).jpg

..and this is after it has been produced by two friendly printers…..