rwillett
⭐Supporting Member⭐-
Posts
1,256 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Events
Shop
Articles
Everything posted by rwillett
-
I've got a Mega256 sitting doing nothing. More pins so rewired my code to use that. Stuck a CNC shield on top with some decent drivers. Still working on the menu code. As expected it's 10x the effort of the actual stepper motor code.
-
Welcome to supply, demand and inflation
-
I used to live Herne Hill and would cycle through East Dulwich to girlfriend in Greenwich. Many a happy hour at the East Dulwich Tavern at the comedy on the 1st floor. I think it's all changed. Sti with girlfriend but two kids now. 30 years saff of the river but now North Yorkshire. I do miss Herne Hill and Greenwich 🥲
-
I haven't posted in a while, not because I've not done anything but I've been trying to understand the various menu libraries that Arduino systems can use. I spent a lot of time trying to work through the ad-hoc, hand built, unsupported, poorly documented, over the top, over complicated, under specced, version tied and generally not fit for purpose menu libraries before giving up and writing my own. I'm sure there are good ones out there, but trying to find a lightweight library (Arduinos don't have much code space) that actually works, is properly documented and works on my simulator is harder than doing it yourself. So I did it myself. I currently have nine options that need to fit on a 20x4 LCD screen. You can see below that the screen is showing options 1-4. As I am an ex C-developer, everything starts at row 0 which is right and proper. The green and yellow buttons will be end stops that I haven't wired yet. I have two digital inputs left but can't be bothered yet. int noRootMenuItems = 9; SimpleMenu_t rootMenu[9] = { { "0Run " , { INTEGER , { 123 }} } , { "1Number of Loops " , { INTEGER , { 123 }} } , { "2Winder1 Steps " , { INTEGER , { 123 }} } , { "3Winder2 Steps " , { INTEGER , { 123 }} } , { "4Bobbin Width " , { DOUBLE , { 1.23 }} } , { "5Wire Width " , { DOUBLE , { 3.21 }} } , { "6Set Left Edge " , { DOUBLE , { 7.89 }} } , { "7Set Right Edge " , { DOUBLE , { 9.87 }} } , { "8Stepper Direction " , { DIRECTION , { CLOCKWISE }} } , }; The above is the rootMenu setup, the numbers at the start of the char* will go, it's just for me to check. Eventually this struct will be enlarged to handle functions, but I'm struggling with how Arduino compilers declare and pass arrays of structs around. A simple C compiler would let me pass a pointer and thats it, the Arduino compiler is not playing ball and keeps refusing to compile what I think is valid code, a pointer to an array of structs. I may bring out the big hammer shortly and declare a void * to teach it a lesson. I've written compilers so this should be easy, but I must have forgotten something important or the compiler is a lot stricter. Anyway, each line has a type attached to it, INTEGER, DOUBLE and DIRECTION. When you select a line using the 'D' character, it moves to a sub-menu and allows you to edit the value thats passed. I've written the code to edit integers, I'll use that as a basis to input floats/doubles and the last one will be to change the wiring direction, CLOCKWISE or ANTI_CLOCKWISE. The aim is to parameterise everything so adding new features is just a new line in the menu declaration. We'll see how that goes I have all the looping sorted out, keypad entries seem to work, but no idea if they debounce in the real world. I also have printed most of the parts for the winder, including my first simple bobbin. I have most of the winder parts sitting on my desk, but am away skiing from Thurs to Monday so nothing is going to move forward for a few weeks yet. If anybody has any spare broken pickups they are happy to provide, it would be great to see how they are made and understand more about each of them. I don't really want to buy lots of working ones to break apart. Thanks Rob
-
I'm looking for London, Manchester and Sheffield. People can work remote but need to sometimes be physically in an office. However we are going waaaaaay off topic. If anybody interested DM me. Back to vintage basses. Apologies.
-
If Andy wants to have a fire sale and drop his prices by around 90% I'm more than happy to help him out by buying a few guitars. They are lovely guitars but outside my limited budget. I have promised myself a 62 'something' for when I retire. Just to be clear, I'm not knocking Andy here. These are stunning guitars in the same way a Ferrari 288 FTO is a stunning car, I can't afford that either. I understand limited supply and large demand. I work with those things every day as I try to recruit people for IT projects. So if there are any SC cleared DevOps (limited supply) here looking for work (large demand), please contact me. Thanks Rob
-
Well done. More than I managed. Be very interested in your drummer in a box. Makefiles are simple, this is how we used to build everything in Unix. They have a few small idiosyncrasies and the syntax is a teensy bit awkward, but it's easy to read and trivial to debug stuff (for some value of "easy" and "trivial"). Rob
-
I always liked this method of generating randomness https://en.wikipedia.org/wiki/Lavarand and it's successor https://blog.cloudflare.com/lavarand-in-production-the-nitty-gritty-technical-details/ Rob
-
Just did a little digging. I expected the random numbers to be awkward on an Arduino but surprisngly they have a trick up their sleeves. https://www.arduino.cc/reference/en/language/functions/random-numbers/random/ void setup() { Serial.begin(9600); // if analog input pin 0 is unconnected, random analog // noise will cause the call to randomSeed() to generate // different seed numbers each time the sketch runs. // randomSeed() will then shuffle the random function. randomSeed(analogRead(0)); } Most PC's don't have GPIO pins so can't do this, so use the suggestion @neepheid has proposed. As there are hardware input pins, they can be read and will generate some sort of randomness. Perhaps not as difficult as I thought. Rob
-
Thats the intention. It needs some sort of directed randomisation, which does sound a contradiction. I'm slightly nervous about how random things are on an Arduino. For those of you who play with IT, true randomisation is quite difficult. No idea how the randomisation works on this sort of low level kit. Suspect it's not random at all though. Thats futher down the path though. The first priority is getting it working for simple windings and getting the interface done. Rob
-
I was hoping that silver wire would help me lose weight, regain hair loss, improve my diminishing IQ and make me more attractive to women and not just dogs.
-
This is where I read about silver vs copper wire. https://mwswire.com/guitarpickup/#:~:text=“Pickups wound with silver wire,very nice and regular coil. Silver wired pickups are not top of my list but the people who supply it think it different. I look forward to trying gold and rhodium wire as well 😊
-
Thanks I've seen those type of pictures. There seems to be a range from a drill attachment to all sorts of mechanical devices through to computer controlled ones. I was looking at this as I wanted to get different pickups for my 3d printed guitar to see what else it might sound like, and I realised I knew little about pickups, so decided to learn a little. I realised then, that they aren't that difficult to make really. My understanding was that the first Fender ones were literally made by hand as people looped wire around the bobbins. So the people who made them did their best to get it right but clearly each one was randomly made. Perhaps thats what made them interesting. Modern pickups will be very, very similar as they will be computer controlled. The advantage of the Arduino for me is that the actual code that controls how the wire is laid across the bobbin is, checks the sketch, 13 lines long. and one of those lines is a comment Now if I wanted to change the winding to be more random, thats pretty easy, I could put more wires on the top or middle or bottom of the bobbin, I could do a patern where the wire goes across the height of the bobbin in one loop so it's almost diagonally wound. What effect this winding has on the sound is a mystery to me. I am told silver wire has fantastic sweet sounds. If I get this working and I can afford a small reel of silver wire, I may find out. If nothing more, I'll get a better neck pickup for my Telecaster Rob
-
Let me build it and see. I'm trying to work out the minimal amount of hardware so probably looking at a CNC shield and a couple of DRV8225 stepper drivers. The CNC shield is overkill but it's cheaper and easier than two dedicated single driver boards. The core software is there. There's zero checking, no input whatsoever, it's all hard coded. I'm thinking that I'll just reflash from the Ardunio sketch if I change any parameter. Focus will be getting the stepper motor mounts done, working out the motor drivers and the inevitable changes to the pinouts, putting it all on a small sheet of ply and checking it all lines up. Then I'll print the simplest pickup I can with my own 3d printed bobbin. Dip it in wax and see how it sounds. Might be junk, might be great. Then and only then will I look at anything else
-
I've already built a CNC machine. Admittedly it was around 800x600mm. https://forum.v1e.com/t/new-build-in-clapham-north-yorkshire-uk/16519 This is not a CNC machine. A CNC machine doesn't have to loop back and forth for the winding. You could program it to do that I suppose in Klipper or Marlin but itwouldn't be ideal. You could argue it's closer to a 3d printer. Also a CNC machine doesn't get to 0.005 mm accuracy at the price I can afford. Mine certainly didn't. I also didnt happen to have a small CNC machine lying around. I did happen to have a few arduinos and stepper motors. No idea what I am winding. I'll build it and play. I may not put an input interface and just reflash from a laptop for awhile.
-
Hi, As part of my work on 3d printed guitars, I started thinking about what was the best pickup to use for either six string or bass. Currently my six string has a pair of Tesla P90's which sound great to be honest. I have an 89 MIK Squier Telecaster which I love playing but the neck pickup sounds like, well something very muffled and bad. I did think about buying a replacement pickup but to be honest, I haven't a clue. So I thought about making pickups and wondered how difficult it is. After reading a lot, it doesn't seem that bad to do, you have a bobbin, you have some magnets, you have an awful lot of wire and you turn it. I saw people doing this with electric drills, by hand and by using various automated winders. As I'm stupid and can't resist a challenge, I looked at doing my own pickups. I have a few Arduinos and stepper motors sitting around and I used to be able to code, so had a good walk with the dog to think, had a play with a 3d printer, an Arduino simulator and a lot of coffee. My working assumptions were that the major problems are: 1. Actually feeding the wire onto the pickups in a controlled manner 2. Keeping the tension correct all the way through. Since people were using their hand drills to do this, I figured that its not the worlds biggest problems and if I could use a computer, a lead screw and a stepper motor I could control the feed back and forth across the bobbin ad that tension is a simple felt pad to slightly slow things down. So below is the schematic on the Arduino simulator that drives two stepper motors, the top one at full speed and the bottom stepper motor at a far lower speed. The lower stepper motor drives a lead screw that moves the copper wire across the bobbin back and forth with no user intervention. As this isn't a video you can't see it working, but it does The actual core of the code is written, it didn't take that long, a few hours for a few days as I tweaked it. What it doesn't have is an interface to enter all the values, such as the number of loops, the gauge of the wires, the width of the bobbin, the number of steps of the stepper motor per revolution, the pitch oft he lead screw. Thats this load of code here. int ratio = 10; int stepperSpeed = 1000; // int stepper2Speed = stepper1Speed/ratio; int noLoops = 10000; unsigned long loopCounter = 0; int currentRatio = 0; char buffer[21]; double coilWidth = 3.0; double wireWidth = 0.0564; int stepper1Steps = 200; // 200 steps per revolution int stepper2Steps = 400; // 400 steps per revolution int leadscrewPitch = 2; // 2mm double step = (double) stepper2Steps / 360.0; double distancePerStep = (double) leadscrewPitch / (double) stepper2Steps; double numberOfStepsPerRevolutionAsFloat = ((double) wireWidth) / distancePerStep; Putting a simple menu system on here is probably 10x the work of writing the code so am thinking of ways to cheat Along with writing code, I started to physicallty put together the start of the winder. This is the first cut, it has an 8mm lead screw that will be attacched to a Nema 17 motor on the left hand side. This stepper motor will move 1 step every 11.28 steps for the main motor that winds the bobbin up. After 3mm of movement, the bobbin width, the stepper motor will reverse and move back. Each step is around 0.005mm of the lead screw, thats the level stepper motors can do even without microstepping (which TBH I don;t know how to do yet). So as the main stepper motor puts 10,000 loops on, the wire is carefully moved back and forth across the bobbin in a highly controlled manner. Thats the principle anyway. I know that there are screws missing and its a bit Heath Robinson, I didn;t have many M4 and M5 screws to hand. Moving the lead screw by hand is smooth and allow coils up to 120mm to be wound. No idea what that would be, but thats the options available. Next steps are Nema 17 mounts, adding in menus (masses and masses of work), putting in switches to detect the lead screw holder hitting the ends by mistake, adding in PSU, working out CNC shields or stepper motor drivers, mounting on plywood, designing a bobbin holder, designing a bobbin, getting some cheap AWG44 copper wire, but the basics are in place. Thanks Rob
- 107 replies
-
- 10
-
So thats where my order went... I've been looking for that all week...
-
I've been looking for a Westone 1A bass to go with my Westone 1A guitar. This one looks likes its been tipped in tar and just left to dry. No idea what they were thinking of, defretting a great guitar and painting the body with tar.
-
@Stub Mandrel I'll send you my PLA mistakes, they'll go well with some onion gravy and perhaps mustard. Rob
-
430mm from the nut to the 12th fret. 73mm from the bridge to the back of the guitar, 100mm from the back of the heel to the end of the guitar and 170mm from the 12th fret to the end of the heel. Thats the dimensions of a Fender Jazz body and a TMB bass neck. Everything else is just noise (pun intended) Rob
-
And this is the bass guitar design Still a long way to go Rob
-
Not sure I can machine aluminium to be honest, so that part is out of the question. Oddly enough I just started the design of a headless bass earlier today. The intention is to use a plywood backbone as I have with this guitar as there is no way a wholly 3d printed guitar using PETG or probably even with Carbon Fibre elements could cope with the stresses of bass strings. Originally when I thought up this six string, I was going to use aluminium as a backbone as it would allow the body to be shallower, however cutting and shaping aluminium is massively harder than plywood. Whilst things can be done with hand tools in aluminum, it's significantly easier with plywood. Aluminum has one key advantage and that it's stiffer than plywood for significantly thinner profile. I also looked at carbon fibre. You can use hand tools for CF but you have to be very very careful as the shards of CF are dangerous. My garage is full at the moment as we have building works underway and I did not want to do anything with CF in the house as we have a dog and two cats. Plywood is a good compromise for me at the moment. I don't see why a Roland Pickup and synth can't be attached to any 3d printed guitar. I had my guitar plugged into a Marshall amp over Xmas and a proper guitarist (not me) was giving it some welly. He loved the design and how it played. It sounded great and I'm hoping the bass I put together will be as good. If anybody wants to commission work just let me know. Rob
-
There's no problem (in principle) with incorporating wild designs. The limitations are really around the printing area size. As I don't have a printer that can do a complete body in one go, you have to join things together, so you have to have a design that allows it be assembled. so where the join is, you need to have something approaching a body to glue or bolt things together. So here's my outline of the guitar that I made. The purple line is the exterior and the black line inside that is the inside edge. The recctangle in the middle is the space for neck, pickups and bridge. All I did was design a repeating hexagon (not as simple as I thought it would be, I had to go back and do trigonometry from my school days) and overlay it I then overlay that with the maximum printing area rectangles. I tried all the angles to reduce the number of sections, but you still end up with four sections outside the modules that make up the bridge, pickups and neck. A bigger printer could reduce this but it will be a big printer. There is nothing to stop me changing the hexagons in the middle picture to something else. Perhaps large arcs as somebody posted earlier, my dragon drawing skills are limited, indeed my drawing skills are limited, so I would struggle, but so long as there is a picture to trace from, it could be done, with the caveat that where the sections meet, there has to be a reasonable amount of filament to join together. Probably a day or less to get the design in (assuming somebody else has done the artistic work), depends on the complexity. From a printing point of view, it's probably no extra effort to print and assemble. Would need to think about clamping points and how things like the control panels are built in, but nothing difficult. Rob
-
I've not done anything on the guitar over Xmas, due to a slight pink torpedo up from me, it's still in York and whilst thats the same county, it's 1.45 hours away so not easy to pop back for it. I thought I've have a look at sanding the original body, this was the original one and I'm not sentimental over it at all. So I've had a go sanding down the body with an electric mouse sander, these are the small triangular ones. I've never sanded PETG before so was interested in how it would work. I thought it would simply melt and deform. I was wrong. PETG is tough, and a small mouse sander even with a P80 roughness paper, wasn't making a massive impact on it. It was certainly roughing tghe surface, but it wasn't taking a massive amount off. I might have a try with an orbital sander. The intention is to sand, fill the gaps in, sand some more and get it as smooth as possible, fill the gaps again, get it even smoother and then try an undercoat/primer, then a few coats of satin black followed by an epxoy top coat. I'm not going to do all the body, just a sample section to test it. I'm just experimenting with different fillers. OOn the right is a Humbrol Model Filler and on the left Vallejo plastic putty. The Humbrol looks like it is a two part, though it's all in the tube. The Vallejo seems to be thinner but we'll see. The Humbrol appears to dry quicker, but thats not an important characteristic to me. Here's a picture of the tests
-
It looks good and you still have the same number of fingers , thumbs and appendages* so I’d chalk that up as a success Rob (*I am making a certain assumption about fingers, thumbs and appendages)