Weekly Summary
This weeks home work was to learn electronics production by creating our own In-system-Programmer (ISP). The knowledge and skills required for that are:
-
Setting up and operating a Milling Machine I did the prefab milling session with Rico, where I was instructed on how to use the Roland SRM-20. I also became member at the (now-defunct) TechShop Tokyo, for the sole purpose of using the milling machine there. But this was the first time, I used a milling machine to create a PCB.
-
Creating Tool Paths from PNG files for the Milling Machine The usage of mods became slightly demystified, it's an amazing piece of software, there is a nice, German expression for that "Eierlegende Wollmilchsau", the egg-laying wool-milk-pig. It really does everything. (Context: I am Austrian, but speak German).
-
Stuff and solder the parts Last time I did some serious soldering was with the Basic Stamp 2 โ๏ธ and PIC back at the RCA in the UK. And that wasn't with SMDs. Another premiere for me.
-
I choose the hello.USB-UPDI.FT230X board from the course site, but I created a gonzo-style, pixel remix of the board to solve the only weakness it has: the USB connector.
-
I sacrificed a non-working Nintendo FamiCom and a non-working FamiCom game cartridge to create a glorified USB Adapter for the ISP Board. Besides better stability for the connector, a nice side-effect is the extensibility. For the next Programmer, I can reuse the host, I will just have to make a new cartridge.
-
Why the Nintendo FamiCom? Because of it's top-loading cartridge design, ubiquitous and cheap availability in Junk Hardware Stores, and because I love the design and colors of it. And I wanted to challenge Neil's comment that this week wouldn't be a creative week at all.
Assignment Work Plan
The limiting factor for this weeks work plan, was my time limitation: I could only come to the lab on Saturday, which means I will have to get everything done in one day.
Timetable
- Thursday: Updating Site & Documentation (2 hours)
- Friday: Visiting Second-hand Hardware Store to find consoles and cartridges (2 hours)
- Saturday: Work session in Kamakura, 10:00 - 19:00 (9 hours)
- Sunday:
Organizing Online DIY Bio-workshop for Kids at Panasonic Science Center in Odaiba, Tokyo - Monday: Documenting Group Assignment Page (4 hours)
- Tuesday: Documenting Group & Individual Assignment Page (6 hours)
- Wednesday: Site Updates, Final Project Updates (4 hours)
Group Assignment
The Group Assignment is to characterize the design rules for your PCB production process
Here is the link our characterization of the PCB production process: http://fabacademy.org/2021/labs/kamakura/assignments/electronics-production/
My more personal links for the Roland SRM-20 and my tutorial on how to convert PNG files to tool paths with mods.
PCB Production with the Roland SMB-20
Machines and Specifications
At FabLab Kamakura we have 2 Roland SRM-20 machines for PCB production. Here are the more interesting specs of the machine:
- Workpiece area: 232 x 156mm
- Software Resolution: 0.01 mm/step (RML-1), 0.001mm/step (NC code)
- Power Consumption: 50W
- Acoustic Noise Level: 45-65dB It was less noisy than expected More official specs.
Preparing the Roland SMB-20
Power Switch ON!
Machine Switch ON!
That's where the bits live!
A single bit. Be careful with the tip. It is sharp - and easy to break.
Roland VPanel
Showing Hidden Files Extensions
The Roland Machines have again their own, dedicated Windows Notebooks, Language is set to Japanese. (The FabAcademy in Kamakura also includes free Japanese Lessons! ๐)
One confusing thing was the fact that Windows likes to hide the extensions of files. Which becomes annoying if you have a file like test.png.rml. The rml extension was hidden, it appeared as test.png, looking like an image.
To rectify this, go to the view settings and click 'Show Extensions'.
VPanel Overview
Annotations in English:
Insert Milling Bit, Zeroing Z
- Z up ca 50mm
- Fix milling bit with hex wrench
- Carefully lower Z height, first continuous, then step-wise
- Hold milling bit, open holding screw, gently guide it down, so that the milling but touches the PCB surface.
- Fix the screw again
- Press the Zero Z Button
- Raise Z
Zeroing XY
With the milling clear of the PCB, move with the XY buttons to your desired starting point. Press the Zero XY Button.
Loading a File
- Press the load File Button, a file explorer window will appear
- Press the left 'Add' button (่ฟฝๅ , Tsukai) to add files
- The 'Delete' (ๅ้ค, Sakujo) Button removes one file
- The 'Delete All' (ใในใฆๅ้ค, Subete Sakujo) Button removes all files from the VPanel
Pressing the ๅบๅ (ใใ ใคใใใ, Shutsuryoku, Output) Button starts the milling process.
Milling
After the milling is done, remove the milling block and dust it off. The PCB is still sticking to the milling block with the double-sided tape.
Extracting
To remove the tape, put solvent into the milled frame, this will remove some of the tape. Carefully use the spatula to lift the PCB.
Results
mods
Neil's Line Test Files
Neil's Line Test files
Kamakura 2021 Line Test Files
Kamakura 2021 Line Test files. The files were created in Illustrator and Photoshop, without the use of Circuit Design Software.
File Preparation in Mods
The CBA's mods environment is used to convert the files and create the toolpaths for milling the PCB. Mods is a very powerful environment, but without guidance it can be challenging to make it do what you want. It's a node-based programming environment, similar to Max/MSP or PD, but without the differentiation between a dev-mode and a run-mode, which makes things a bit cluttered. The JS UI is applaudable, but we experienced some UI challenges on MacBooks, where the 2-finger gesture for scrolling is also used for zooming.
We want to do the following:
- Convert the trace and interior PNGs to RML tool paths for the SRM-20.
We will be using a 1/64 inch bit for the traces and a 1/32 inch bit for the interior (or frame). Why is it actually called interior?
Opening Mods
Go to http://mods.cba.mit.edu
You will be greeted with a nearly empty page, some see it as an empty canvas. PNG to RML.
Right click and do:
Programs -> Open Server Program -> machines/Roland/mill/SRM-20/PCB png
Or open: http://mods.cba.mit.edu/?program=programs/machines/Roland/mill/SRM-20/PCB%20png
The mods program for the Roland SRM-20 should look something like this:
Loading PNG Files
In the read png node click select png files to load the PNG file.
Adding a Save> Node to Export the RML File
We are not using mods to control the Roland SRM-20, we use it to convert the PNG files into RML tool path files. To export files, we need to add a Save Module.
Right click and do:
Modules -> Open Server Modules -> file/save
One you have the node on your work area, place it near the Roland node.
Connect the output of the node Roland SRM-20 milling machine to the input of the save file node. A visual connection confirms the link.
Setting up the Roland SRM-20 milling machine
In the Roland SRM-20 milling machine node
- Setting Origin X, Y, Z to 0mm
- Set Jog Height
Jog Height is set to 2mm as default. Jun-san prefers 1mm, Tsuchiyama-san suggests 12mm. Jog Height means the vertical distance of the tip of the milling bit while it moves without cutting.
A lower jog height will make the milling process fasters, as less distance will be travelled.
Matching Mill Sizes
In the set PCB defaults node there are two default settings:
- mill traces (1/64)
- mill outline (1/32) (="interior")
Click the corresponding button, depending if you are using the 1/64 or 1/32 bit.
Setting the PCB defaults will update the node downstream, updating the parameter accordingly.
Mill Raster 2D Node
- offset number and offset stepover specify how much material is removed next to the traces
- offset number = 4, offset stepover = 0.5
To create and save the RML file, click the calculate button in the mill raster 2D node. Within the node, you can also see a preview image of the output file.
Viewing 2D Tool Path in New Window
The View button brings you to a new window with the detailed 2D toolpath.
Viewing 3D Tool Path in New Window
The view button in the view toolpath node allows you to view the toolpath in 3D.
Individual Assignment
The Individual Assignment is to:
- make an in-circuit programmer
- by milling and stuffing the PCB
- test it
- then optionally try other PCB processes
Test Patterns
This week I could only spend one day (Saturday) at the lab, the plan for the day was:
- 10:00 - Intro to mods (Group)
- 11:00 Milling Test Pattern Board (Group)
- 12:00 Choosing and Milling Programmer Board
- 16:00 Stuffing and Soldering
- 17:00 Testing and Programming
Learning from our DPI mismatch issue with Inkscape and the LasterCutter last week, I added:
- a 1cm scale bar
- some small text to challenge the milling machine
- some SMD patterns for soldering practice
- and the name of the lab - in Kanji!
The Programmer
- I choose the hello.USB-UPDI.FT230X board from the course site.
I was aware how colleagues from previous years were struggling with the milled USB connector - the usual solution would be to lay down more solder on the USB contacts and how that it will work.
Surely there must be another way. Being in Japan, and being exposed to Second-hand Hardware and Electronics Junk Stores, means I came across a number of non-working old Game Consolers and Cartridges:
And although they were not working anymore, the consoles had exactly what I needed. A stable and proven mechanical connector.
Can I put the programmer into a game cartridge, and connect the USB interface with the connecter inside the console? Can I create a modular programmer? (that would also look pretty nice?)
Opening up the cartridge revealed the following interiors:
Now we have a plan:
- Adapt the Traces of the hello.USB-UPDI.FT230X board to fit the connectors of the game cartridge.
- Make the Outline the same as the game PCB, so it will be held in place (No screws in the FamiCom Cartridges.)
I measured the pins (30pin, 1.5mm wide each, space between is 1mm), and the dimensions of the PCB and recreated them in Illustrator exported it as PNG.
Milling the FT230XFamiCom Board
For the PCB material I used the standard (and suggested) FR-1 Phenolic Paper.
Preparing the milling block
I took extra care (and time) to affix the double-sided tape to the milling block.
The Honda Ultrasonic Cutter!
After milling the PCB, I used the Honda Ultrasonic Cutter to remove islands and artifacts, as well as clean-up the edges of the PCB. Also, the board was a bit too big to fit into the cartridge and the holes, I had to cut it to fit. That's why the nice milled, round hole become a bit unsighty. Working with the Ultrasonic Cutter is fun, and somewhat relaxing - I want one for my home lab!
Preparing for Soldering
Stuffing and Soldering
And about now is the time the instructors got worried about time. The next step in my plan would have been to connect the USB to the FamiCom, test the connection, and then test the programmer.
Testing Connections
I used the Multimeter and the circuit diagram to test for Continuity of the board. Everything seems to work! (Big sigh of relief!)
USB Frankenstein
I decided to directly solder a USB cable onto the board, then we can check if the board works.
The Moment of Truth
Connecting the board to the computer, About this Mac
.
๐ฅณ
๐คฉ
๐ฅณ
๐คฉ
๐ฅณ
๐คฉ
๐ฅณ
๐คฉ
It's working. (even bigger sigh of relief)
And it's 18:15, meaning the official lab session is over since 15 minutes.
Programming a Test Board
lsusb
With the encouragement of Jun-san we marched on with the next step, installing lsusb
utility:
brew install lsusb
Which gives the following output:
We use a ATTiny3216 target test board from the lab to see if the programmer works.
- Download and install the hello ATTiny3216 code:
-
Install the MegaTiny Library
.. -
Select the board in Arduino
.. -
Select the port
.. -
Select Serial Interface
.. -
More detailed info on the local session page: http://fablabkamakura.fabcloud.io/FabAcademy/local-sessions/week4.1/
-
Run the program!
Watch full screen videos: https://vimeo.com/516160717, https://vimeo.com/516160684
Hero Image
Learning Outcome
I haven't done soldering since many, many year. It was great to do it again, the biggest outcome for me is, that I now got all the tools and niceties for my soldering station at the home lab.
Next Steps
Onwards to Circuit Design
Remixing the traces was fun, looking forward to learn 'proper' circuit design tools.
More Game/Programmers
Hacking the FamiCom Cartridge Connector was also fun, I want to make more, different programming boards/game cartridges, that fit into the FamiCom.
Homebrew!
Another direction is to go Homebrew and program a game cartridge that works as a legitimate game - and also as a programmer.
Translucent GameBoys
The FamiCom looks great, is cheap and available, but despite being on the small side, it it not really portable in a meaningful and practical way. I'd love to get my hands on a translucent GameBoy Pocket (or Color), and use the translucent game cartridges for the programmer: I got the cartridges, but could not find a non-working translucent GameBoy yet. Working ones are around ยฅ3000, but my heart would bleed and my soul would cry, if I were to sacrifice a perfectly good GameBoy.
Files
Download the Files used in this project: