I ended out Article 9 with a tease of a redesign of the main circuit board for the clock I’ve been working on for five months now. I got that a few weeks ago and assembled a new prototype.
The good news was that the buttons work just fine, and there’s no flicker on the display, but now the timing is off. Each minute takes about six real minutes to tick. On the first design, the time was close to normal. I spent quite a few fruitless weeks trying to figure out what’s different. Even poking at the time signal with an oscilloscope only to realize I didn’t know what I was doing with it.
First thing that came to mind was that I didn’t tie the external casing of the crystal to ground. This didn’t change much, especially since I bodged it to power instead of ground. Not a good start. I also realized that the crystal on the first design had symmetrical traces to the crystal. Given how picky the signal from watch crystals are, either of these problems might be at issue. Problem is, I’d tucked the crystal down into the gap between two taller components. I couldn’t think of a way to reliably change the length of the traces without getting a new circuit board.
While I have a reliable source for Made in America custom PCBs, but they do have a four unit minimum. Which means $50 each time I redo the main board of the clock for the PCBs alone. Most of the clock is working just fine, so I really didn’t want to redo the whole thing… again. So what to do?
Well, I socketed all of the ICs for convenience, including the MSP430F2003. The malfunction is limited to the MSP430F2003 and the crystal. So, I could just design a smaller board that plugs into the socket and gives me a redo on the timing circuitry. In the general parlance, these are called Daughterboards, as the main board is the Motherboard.
I came up with a couple of designs, the first was the most complicated. The last was the simplest. I’ll talk about the simple one first. In short, it is a small rectangle which offsets the microcontroller slightly to the left and aligns the crystal perpendicular to the IC. This shortens the traces as far as I can reasonably manage. I also tied the outer casing to ground. The advantage of this design is that it is effectively the current clock unchanged save for tweaking the crystal relative to the microcontroller. Four of these cost all of $3.80 for the PCBs.
My other designs were to take advantage of another project that had been percolating through my mind for some time, the Pluggable MSP.
Now, what is a Pluggable MSP? In short, it’s an idea I had to allow using a surface mount MSP430 in a regular socket. The base problem it solves is that the more advanced MSP430s with greater internal storage are all surface mount chips. These pose a number of logistical issues with code debugging and integration into the final project. Plus, I wanted to move towards a more modular architecture for these projects to cut down on the number of $50 PCB orders. I hadn’t delved into how to implement this modularity because I wanted to get the clock working before I leapt down that rabbit hole. But I did start designing and prototyping of the Pluggable MSP. The first circuit board I drew up was for the initial iteration. As the main chip for the Pluggable MSP, I selected the FR2355 version. This was for three reasons: One, it had significant computing resources compared to most options. Two, there was a launchpad with the FR2355 as its chip of choice. Three, it had a form factor with pins along the sides.
The pins along the sides was important for soldering. I’m a novice in the art, and rarely tackle surface mount components. Being able to reach the connectors I can test the mechanical and electrical connections to verify that they are correct, with no solder bridges and no loose pins. The FR2355 has thirty-eight pins, which in the first prototype I connected the pins to pin headers. This let me use jumper wires to connect it to the launchpad and to a breadboard to verify I was loading code.
That was months ago. I’ve since looked at the design and went “why not make this fit a standard socket size?” I could not readily find a thirty eight pin socket, but I could find ample forty pin sockets. So I redesigned the board to fit in the footprint of a forty pin socket. It was a tight fit, but it did fit. This made it easy to design a daughterboard to map the forty pin Pluggable MSP to the fourteen pin socket on the clock.
Why would I do such a thing? Well, in my frustration with the raw signal from the crystal, I had been looking at real-time clock modules. That is, a chip or board where someone else handles the conversion of crystal oscillation to time. Now there had been a discussion in the comments for an earlier article in this series about reinventing the wheel. I had outright declared that I was working towards the transistor and wanted to do as much of the designing as possible. But I had gotten so fed up with not being able to think of an avenue of investigation that I began looking into these RTC modules. There are a lot of options. Some of which did not solve the “I don’t want to deal with compensating for the crystal” part of the problem. Others were more extensive.
I actually worked out how to add one to the Pluggable MSP board before I even rexamined the minutiae of how the crystal on my current clock was laid out. Having ordered several, and the PCBs for the current iteration of the Pluggable MSP, and the daughterboard to connect the forty pin Pluggable MSP to the clock, I figured I’d have to write a chunk of code to implement the I2C protocol to get the time off the RTC module. I was not looking forward to that. Artcile 11 or 12 may be a discussion of serial communications, since this article is getting long.
Luckily for me, I figured out my second design. I’d already ordered the PCBs, so I couldn’t add a trace, but with a single bodge wire, I could take the clock signal from the RTC and feed it into an input pin. All I’d need to do then was to write enough I2C code to set the clock signal to 1 Hz, and I could use that to trigger the seconds increment without using any of the advanced features of the RTC module.
As I wait for my latest order of parts and PCBs to show up, I emerge from my malaise, with multiple avenues of investigation open to get this clock from where I am to where I need it to be.
>.>
<.<
*tumbleweeds*
Sorry, it is a workday 🙁 I was off looking up what was left needing to be done for a project.
Maybe some short video clips of soldering would punch up the enthusiasm. (Or blow some shit up.)
Rest the circuit board on a stripper’s tits for the photos.
I came up with a couple of designs, the first was the most complicated. The last was the simplest.
Sounds like you’re on the right track.
“That’ll never work.”
-Automotive engineers.
Sadly, they were right. I have to start taking pictures for Part 13, where I do hardware work for the most complicated solution.
(Or blow some shit up.)
Release some smoke. This is where smell-o-vision would come in handy; who doesn’t love the smell of frying insulation?
The good news was that the buttons work just fine, and there’s no flicker on the display, but now the timing is off.
Not counting the pulses of the crystal properly?
https://www.sigsauer.com/p320-xfive-sxg.html
My Amex card is whimpering.
Thanks UCS. Once you get this thing up and working I’ll be curious how the temperature compensation works.
You should try to both freeze and and heat it and see what happens.
There’s two more articles in the can, plus a few more to be written given the current state of just the clock project.
The proper reaction to a big tax hike.
https://www.thegatewaypundit.com/2024/06/kenyan-parliament-erupts-flames-least-8-shot-dead/
Trump’s fault.
I blame (((them))).
Sadly, those shot by police were protestors, not legislators.
Sadly the wrong lessons will be learned.
Next time, they will be more discreet.
For any kind of time dependent signals, the propagation delay has to be considered. This applies both from a input or output signal as well as for the time it takes to process a signal. This delay in and of itself is not always an issue, but if you are expecting a signal at a particular time and it takes longer or shorter time to receive it than you expected you might not detect it. You might also detect only one in X signals.
Circuit inductance, capacitance, and resistance all can have a effect. If my memory serves, in the last iteration you were looking to filter noise in some part of your design for the display.
https://www.omnicalculator.com/other/propagation-delay
Here is a better article on the topic for ICs and circuits, not routers.
https://www.allaboutcircuits.com/technical-articles/elmore-delay-model-transistor-sizing-vlsi-design/
Interesting! Look like I need a Calc II refresher, though…
I’ve forgotten more calculus than most people will ever know.
(The problem is that I have forgotten it…)
https://www.sciencealert.com/astronauts-stranded-with-no-set-return-date-for-new-boeing-starliner
After helium leaks and thruster problems with Boeing’s Starliner capsule, NASA has been pushing back the return date from the International Space Station.
On Friday, the agency announced they no longer had a planned return date. Instead, they will keep testing the capsule, trying to understand its issues, and seeing if they can make any fixes. Plenty of supplies are on the station, so there’s no urgent need to bring the two astronauts back to Earth.
What a clusterfuck Boeing has turned into.
Look around. It seems to be catching.
I don’t care how many diagnostics they run, there’s no way I’d return on that thing. Give Elon a call please.
Ha
https://babylonbee.com/news/trump-preps-for-debate-against-biden-by-going-to-nursing-home-and-arguing-with-dementia-patients
People say he’ll be at a big disadvantage without and audience, but he’s been doing podcasts lately and he sounded fine to me.
Trump’s biggest problem is that he’s a bully. He’ll try to fluster Biden with his bullying ways and it’ll be a bad look. He should try and put on a sympathetic look when Biden struggles as if to say, “I don’t wish him ill but he shouldn’t be here.”
“Bless your heart Joe.”
I have a ton of bad feelings about the upcoming Clutch Cargo debate. There is not a fucking thing that will be real that happens there.
“Terrorist” attack that takes out Trump & Biden, solving 2 ‘problems’ at once.
There is one really simple and dumb mistake on the circuit board for the pluggable MSP. Can anyone see it?
Nope.
I did a breadboard of an analog circuit back in college (40 years ago). Beyond that I have no experience (and no interest) in circuits.
I did complain about having made the mistake in random comments elsewhere.
On the microcontroller footprint, the fourth pad down isn’t connected to the trace that connects it to the pin header.
I really respect your diving into this stuff as a hobby.
My eyes cross when I try to look at it.
I found it when I was testing my soldering for continuity and that header didn’t beep.
I was about to guess that it had something to do with the one pin that has two connectors coming from (going to?) it – in the lower left of the area in use. But I know less than nothing about this stuff.
@GT Which one? The lower left multi connected pins tend to be either power or ground.
The one to the left of the letters “ab” in “Pluggable.”
That’s ground and…
🤬
Pin 9 is reset and needed to be pulled high not low.
You spotted an error I hadn’t identified yet.
I did?? 😃
Of course, I didn’t know it was wrong – I just noticed that pin 11 was the only one with two connectors, one of them connecting to another pin in the same row, unlike all the other connectors, which cross over.
Yes, that seconnd connection was supposed to be from Pin 10 to pin 9, not 11.
::sings softly:: “One of these things is not like the others…”
Fortunately, I can fix the problem easily.
I see how I made that error.
In the datasheet, the table of pin functions has pin 9 marked as active low (needs to be tied to ground on pin 11 for active) while the pinout diagram saying which pin is which does not indicate that. Since pin 9 is the ‘Reset’ pin, we want that to not be active (so tying to power on pin 10)
So Pin 10 is the one that’s supposed to have two connections? To Pin 9 and to Pin 1 of the group across on the right?
Yes.
Pin 1 on the smaller set is power from the motherboard.
I thought working on my truck was frustrating sometimes.
I can mostly follow your logic, troubleshooting cam fry my brain sometimes.
There is one really simple and dumb mistake on the circuit board for the pluggable MSP. Can anyone see it?
You forgot to torque the rod caps.
I should be surprised, but I’m not.
https://nypost.com/2024/06/25/us-news/policies-for-nonbinary-service-members-critical-race-theory-essential-for-national-security-senior-pentagon-official-claims/
“…the main board is the Motherboard.” Muh patriarchy!
At least we got rid of whitelisting and master/slave jumpers.
Nope, the next article is on Serial communications between master and slave nodes.
Wait ’til you hear what they call clutch cylinders!
See my response to Brooks below.
“…the main board is the Motherboard.” Muh patriarchy!
Ar least it’s not a master/slave relationship.
A dealer on Bring a Trailer referenced having replaced the “secondary” cylinder on a clutch assembly on some car I was glancing at and I asked him what that was (I knew, but was trolling). I got the most nonsensical answer I’ve ever seen, but he didn’t ever say “slave cylinder”.
I like that you decide to troll the dealer.
I’ve never heard them called anything else. I suppose you could say “hydraulic clutch cylinder” as opposed to the “hydraulic clutch pedal”.
I go out of my way to use the term now. We’ve been looking at properties and did you know that the master bedroom is now the “primary?” So lame.
This Primary isn’t though.
The main thing I love about these write ups is I have zero idea how to do this stuff, but as your explaining it, I am grasping some of it. I’m nowhere near clever enough to do this, but could tear it down after it’s been done and figure out how. I guess that’s why I’m a mechanic.
Writing tech for human reading is one of my job skills. And since I’m writing these casually, I don’t want to write as tech.