Тёмный
James Sharman
James Sharman
James Sharman
Подписаться
Join me building all the main components of a stand alone computer system from discrete components, including a pipelined cpu, sound system, UART and vga display adapter.

Follow me on Twitter: twitter.com/WeirdBoyJim
Or Join the channels Discord: discord.gg/jmf6M3z7XS
You can support the channel on Patreon: www.patreon.com/JamesSharman


Bad Apple on the Homebrew CPU!
4:16
Месяц назад
Porting Bad Apple to the Homebrew CPU!
30:56
Месяц назад
Palette PCB - VGA from Scratch - Part 19
30:01
3 месяца назад
Hardware SPI - IO from Scratch - Part 6
26:14
4 месяца назад
Output PCB - VGA from Scratch - Part 18
1:22:14
5 месяцев назад
Signal Cleanup - VGA from Scratch - Part 17
13:34
7 месяцев назад
SPI (Bit Banging)- IO from Scratch - Part 4
30:04
8 месяцев назад
Interim Backplane - VGA from Scratch - Part 16
30:37
8 месяцев назад
Timing Tweak - VGA from Scratch - Part 15
17:36
9 месяцев назад
Interface PCB - Audio from Scratch - Part 10
28:35
10 месяцев назад
ZX Spectrum, Expansion Port Research
40:45
11 месяцев назад
DAC Test - VGA from Scratch - Part 10
30:50
2 года назад
Комментарии
@davejake771
@davejake771 4 часа назад
Hi James, I noticed cleaning up my boards with 99pc alcohol before reflow almost totally removed solder bridges issues. Also routing 4 layer boards I know is more expensive but saves you big time and generally improve your signal quality.
@weirdboyjim
@weirdboyjim 2 часа назад
These are 4 layer boards, although I use power and ground planes rather than use the extra layers for signals.
@danmerillat
@danmerillat 6 часов назад
I've never done the trick with kapton tape on the pads I don't want to connect, but that's one I'll likely use in the future. A couple wires getting a first revision PCB working is pretty much the norm in the industry. Even in bigger designs with a team and design reviews it's always possible to miss something that looks obvious in hindsight. I've seen whitewires in finished products I've bought, sometimes it's cheaper to fix a few thousand boards than scrap them all. Bit of clever wire bending, a bit of kapton to hold them down and the fix will last forever.
@weirdboyjim
@weirdboyjim 2 часа назад
I'm pretty sure I separated those connections anyway but I wanted to make 100% sure!
@TSteffi
@TSteffi 7 часов назад
This was really funny, because I made a very similar mistake recently. I'm working on a board for the RC2014 bus that has a TangNano 9k module as a VDP with HDMI output. And I because the data lines are named backwards in all the VDP datasheets, of course I wired the up the wrong way around. In my case, I didn't have to do a physical bodge, but could just swap the data pins in the FPGA.
@weirdboyjim
@weirdboyjim 2 часа назад
Ohh, a software fix for a hardware mistake. Nice!
@TSteffi
@TSteffi 53 минуты назад
@@weirdboyjim only temporary of course. New boards will be made with the right wiring. But I can't afford that right now, so I had to fix it temporarily so I can keep working on the software for it
@stompreaper
@stompreaper 9 часов назад
It was a nice board and I agree that running down an issue and making it work occasionally is better than it always working first time. I enjoy the debugging process and fix cycle, feels like winning to me 😂
@weirdboyjim
@weirdboyjim 2 часа назад
Someones I feel debugging is the "real" skill to engineering!
@AppliedCryogenics
@AppliedCryogenics 10 часов назад
I'd love to see an interface chip for hobbyists which can go on a classic 6800/8080 bus and give SDIO(!), SPI, and I2C! Patents be damned!
@TSteffi
@TSteffi 7 часов назад
For SPI: you can do that with 2 shift registers and a counter. And SD cards really just "speak" SPI on a hardware level. The problem is that the simplified specifications that the sd consortium puts out publicly doesn't have the sdio part in it. You have to be a company and member of the consortium to get that. I2C is much more difficult, because you have bi-directional signals that are sometimes output, sometimes input.
@weirdboyjim
@weirdboyjim 2 часа назад
Not sure about a chip, but it wouldn't be difficult to design a little module for that.
@Zadster
@Zadster 11 часов назад
Congrats on the sponsorship, a perfect match. A tip for using desoldering braid on fine pitch pads and delicate wires - don't drag the hot braid over the track, it can cause the track to lift. Just place the braid over the track and run the iron over the back of the braid.
@weirdboyjim
@weirdboyjim 2 часа назад
Thanks! The biggest improvement in de solder braid I found was to massage a little flux into the braid. I'll try not to drag it in future.
@DavidLatham-productiondave
@DavidLatham-productiondave 13 часов назад
I have a board i made where i had two spi pins transposed. Thr bodge has been working fine for close on 4 months. I do intend to roll another board but there is zero urgency.
@weirdboyjim
@weirdboyjim 2 часа назад
Some bodges feel very fragile, but some I just want to remove out of principle!
@RodHartzell
@RodHartzell 14 часов назад
Dude. Your videos inspire me. I am a software engineer and I enjoy working with electronics. This stuff you are doing is very informative and I love the way your brain works. I would be interested in building out this creation of yours. I suppose I will have to join your Patreon site.
@weirdboyjim
@weirdboyjim 2 часа назад
Thanks for the kind words! The discord is where you should join, I share various bits of my code etc.. there.
@TheRealWulfderay
@TheRealWulfderay 14 часов назад
Fascinating. I particularly enjoyed the board layout part. I always feel so overwhelmed when I see that jumble of connections waiting for me to sort them out.
@weirdboyjim
@weirdboyjim 2 часа назад
Glad you enjoyed it!
@-lolus-
@-lolus- 14 часов назад
nice bodge
@weirdboyjim
@weirdboyjim 2 часа назад
Thanks!
@billr3053
@billr3053 15 часов назад
I was wondering if the routing software would allow inspection and validation by simulating the logic, etc. before one commits to a physical board. I would have thought that with today’s sophisticated tools, that would be built in.
@weirdboyjim
@weirdboyjim 2 часа назад
That would be useful. But very difficult for a board like this where the simulation would need to know about the rest of the circuit to test it properly.
@cocusar
@cocusar 15 часов назад
I think JLCPCB has an option to hide their part nuimber for free now!
@weirdboyjim
@weirdboyjim 2 часа назад
Do they? It was charged last time I looked. Not really a big problem if there is an easy place to hide it under a component.
@docwhogr
@docwhogr 15 часов назад
i am wondering when JCL is gonna offer chip printing services....
@weirdboyjim
@weirdboyjim 2 часа назад
That would be interesting, although devices like fpga's fit many jobs you might want that for.
@pdxjjb
@pdxjjb 16 часов назад
I found your "low key" endorsement of JLCPCB to be very winning, very convincing. It did not interfere with my appreciation of your video in any way. I hope they appreciate it! And I agree that your coverage of the "bodge" was very educational. All in all an excellent video.
@weirdboyjim
@weirdboyjim 2 часа назад
Glad you enjoyed it!" Looking forward to using the SD card particularly in future!
@your_utube
@your_utube 16 часов назад
The fun is in the bodge. Coming along nicely! Would they permit you to an event like the VCF events in the US? Does the UK have such events?
@weirdboyjim
@weirdboyjim 2 часа назад
I'm not aware of anything like VCF in the uk. It would be nice to go along to one of those one day.
@R.Daneel
@R.Daneel 17 часов назад
Great work. A home-brew processor reading an SD Card is damn impressive! Back in the day we used to use "Kynar" wire-wrap wire for bodges. Highly recommended if you can source a spool or two. Two great features: you could use the wire wrap tool to handle the wire like a micro-manipulator: you could strip the wire and then use the tool to loop the tiny wire around pins and such for soldering. Also - the insulation was, I think, Teflon, so it never melted. You could have the insulation right up against the bodge and it wouldn't shrink back under heat. Oh, and it's tiny of course. 28 gauge or so?
@Zadster
@Zadster 11 часов назад
I have a reel of it in front of me! 30awg. Not teflon, but related to it.
@SomeMorganSomewhere
@SomeMorganSomewhere 8 часов назад
Unfortunately most of the "kynar" wire you find around these days isn't :/ it's not silver plated and the insulation is PVC or at least something other than a fluoropolymer because the insulation shrinks back on heating and it doesn't take solder very well... It IS fine for *actual* wirewrap work but not many people doing that these days. I have a couple of km of that stuff unfortunately so I do most of my bodges with enameled copper wire (aka magnet wire).
@weirdboyjim
@weirdboyjim 2 часа назад
What I'm using in this video was sold to as "Kynar Wrapping Wire" after someone recommended it in the comments of a previous video.
@awesomecronk7183
@awesomecronk7183 17 часов назад
The routing and debugging have to be my favorite parts of each video. Thanks for sharing this project with us!
@weirdboyjim
@weirdboyjim 2 часа назад
Glad you enjoyed it! My stuff will always need plenty of debugging!
@matambale
@matambale 17 часов назад
"Too much decoupling" = "No room for any other parts" All this time I thought you were already sponsored by JLCPCB. It's a logical connection - they're great for this work and you've been demonstrating that from the start.
@weirdboyjim
@weirdboyjim 2 часа назад
One day I'll build a series of circuits to test / demo what effect various levels of decoupling have.
@captainboing
@captainboing 18 часов назад
excellent!. Sorry to see the bug in your PCB but on a personal note, I am pleased that if a man of your calibre can miss stuff, there is hope for me 😆
@weirdboyjim
@weirdboyjim 2 часа назад
Everyone makes mistakes! The real skill in this kind of stuff is often troubleshooting!
@tinygriffy
@tinygriffy 18 часов назад
putting a piece of tape sticky side up under the stencil to lift it better is a nice trick ;)
@weirdboyjim
@weirdboyjim 2 часа назад
Yes! I might need to do that in future, smearing the paste first time was frustrating!
@Packbat
@Packbat 18 часов назад
Accepting a sponsorship from JLCPCB must have been the easiest choice you could have made in the entire build, what with the number of PCBs you've gotten from them over the years - glad they were willing to support the project! And sympathies on the bodge - it looks about as clean as it could get, though. Nicely measured wire lengths and everything.
@weirdboyjim
@weirdboyjim 2 часа назад
Indeed, a product you already use regularly is very easy!
@theboot100
@theboot100 19 часов назад
Another great video James! Ive been waiting for the next one. Congrats on getting a sponsor! I use JLPCB for my boards. Your channel deserves a millions subs. Have you got any other plans for additional spi peripherals? Ethernet would be cool (although probably doesn't fit with your design goals)
@weirdboyjim
@weirdboyjim 3 часа назад
Thanks! No specific plans for spi peripherals for permanent integration, but there are a couple of experiments I want to run.
@Biomancer81
@Biomancer81 19 часов назад
Yay new video!
@weirdboyjim
@weirdboyjim 3 часа назад
Hope it didn't disappoint!
@TheEmbeddedHobbyist
@TheEmbeddedHobbyist 20 часов назад
I like to use very fine single core PTFE wire for my bodges. the insulation wont shrink back with the heat and can be laid down with ease and a little superglue holds in it place just fine. in the days of TPH components it could be fed behind the legs of DIL IC's to hold it down on the PCB. some of our devolvement PCB's may have flown with mods like this, if the unit had a painted blue band around the case it might have some bodges inside. we used a 4 band system on the equipment. 1. A painted Red band, was equipment was for rig use only. 2. A painted Blue band, was could be flown but a back up form of communications must be carried. 3. A sticky tape blue band, a production unit but full qualification has not been signed off yet. once it was fully certified the blue band could be removed. 4. No band, fully certified production unit. No bodges were allowed if the band was not painted on. Now I'm free to bodge to my hearts content, happy days 🙂
@weirdboyjim
@weirdboyjim 3 часа назад
Interesting. My concern with these longer bodges is catching them in the future! I'll do a board refresh before too long!
@berntolovhellstrom8891
@berntolovhellstrom8891 21 час назад
Well done!
@weirdboyjim
@weirdboyjim 3 часа назад
Thanks!
@kokodin5895
@kokodin5895 21 час назад
have you ever thought of using bottom layer as place for soldering stuff or do you decided you will only have one sided loads?
@weirdboyjim
@weirdboyjim 3 часа назад
I have done for some passives in the past. I generally avoid it as part of my project goals are to have everything on display.
@OscarSommerbo
@OscarSommerbo 23 часа назад
I don't know how much it matters, but the Vcc plane covers the area under the RTC chip. If the chip acts up, that might be the reason. I never mind sponsorships that are relevant. And it is a little sad making it took this long.
@weirdboyjim
@weirdboyjim 3 часа назад
Hmm, didn't think about masking of the vcc plane.
@damianvila
@damianvila День назад
You know it's a great day when another video of the Sharmatronic 2000 (aka jam-1) arrives. 😄
@weirdboyjim
@weirdboyjim 3 часа назад
I'm glad you think so!
@lasersimonjohnson
@lasersimonjohnson День назад
Love JLC !! 😎
@weirdboyjim
@weirdboyjim 3 часа назад
And JLC Loves you!
@JanBruunAndersen
@JanBruunAndersen День назад
A suggestion: Implement some kind of history mechanism in your CLI so you can easily repeat commands.
@sparthir
@sparthir 22 часа назад
When he has storage fully up and running a terminal history file can be saved to it. 😊
@weirdboyjim
@weirdboyjim 3 часа назад
That would be useful, but you really need a more advanced line editor to use it. all tasks in the backlog!
@JanBruunAndersen
@JanBruunAndersen Час назад
@@weirdboyjim - an interactive line editor is not required. Something like simple token substitution will go a long way. Like in Bash where '!!' will cause the last command to be executed. Or '!!:s^txt1^txt2' which will substitute txt1 with txt2.
@khatharrmalkavian3306
@khatharrmalkavian3306 День назад
🤖The machine must grow. 🤖 So amazing to have seen it all come this far.
@weirdboyjim
@weirdboyjim День назад
Glad you are enjoying, but it can't grow too much! I'm running out of desk!
@danmerillat
@danmerillat 2 дня назад
I know this is quite an old video by now, but for anyone watching in the future: flux will help with getting the solder to properly flow and not just bead up on the surface. There's a tiny amount in solder wire, but not enough to prepare those large surfaces.
@weirdboyjim
@weirdboyjim День назад
Flux is sometimes a tradeoff between easier soldering and the mess!
@danmerillat
@danmerillat 11 часов назад
@@weirdboyjim That's certainly true! I've spent plenty of time cleaning up leftover flux with alcohol and a close-cropped brush. Situational for sure, might help enough to be worth the mess on something like this edge connector. Love your videos, inspired me to implement a close analogue in verilog to run in simulations to really understand what's happening at the lowest level of CPUs.
@benjaminargenziano5851
@benjaminargenziano5851 5 дней назад
What about designing/implementing a WS2812 LED interface. Would be interesting…
@weirdboyjim
@weirdboyjim День назад
Might be fun. Probably best done with GPIO.
@pierpa_76pierpaolo
@pierpa_76pierpaolo 6 дней назад
Which logic probe would you recommend for me to test these ICs : CA3130E, LM358, V4093D, GD4027B ? Thank you very much.
@weirdboyjim
@weirdboyjim День назад
That depends on what you want to do. A logic probe isn't going to help you test analogue ic's
@MrHamof
@MrHamof 8 дней назад
So I watched all your videos over the course of the last week or so, and they've been great. Loved them to bits. If I may offer one small criticism however, it'd be nice if there was a playlist available that was just all of the videos in chronological order, instead of having to keep track of when there was an episode on for example audio between two episodes on the main computer. Not a big deal, and I did eventually figure out I could use the "watch later" function for this, and probably not worth the effort to fix at this point. But it did slightly annoy me.
@weirdboyjim
@weirdboyjim День назад
Glad you liked them! I'll think about a "release order" playlist. RU-vid always used to show that information readily but I guess not anymore.
@MrHamof
@MrHamof 22 часа назад
@@weirdboyjim It wasn't hard to deal with or anything, they do show in release order in the videos tab on your channel page. Just mildly annoying to have to keep track of until I remembered that the queue feature exists.
@MrHamof
@MrHamof 11 дней назад
OK, but will it run fastdoom? (Probably not, that still requires a 286 even at min settings and it barely looks like Doom at that point.)
@weirdboyjim
@weirdboyjim День назад
I haven't looked heavily into fastdoom but it's still reliant on having much more memory so far as I can see?
@MrHamof
@MrHamof 23 часа назад
@@weirdboyjim Yeah I'm pretty sure the answer is in fact no, it won't run Fastdoom.
@MrHamof
@MrHamof 11 дней назад
3:05 You absolutely can use an audio tape with a modern PC, hook it into your line in/out ports and run any of the adapter softwares that are available. In fact if the JAM-1 supported audio tapes you could connect it directly to the PC like this and have the PC pretend to be an audio tape. Obviously that's very clunky though, handy if you're trying to get cassette files onto something like a Commodore but not very helpful for what you're doing.
@weirdboyjim
@weirdboyjim День назад
My comment wasn't really "this can't be done" but more that it's not a supported usable storage medium. I've loaded code from my pc to the ZX spectrum via the sound card!
@MrHamof
@MrHamof 13 дней назад
6:15 There does exist software where you can just throw in a truth table and it'll tell you the configuration of gates that uses the least gates to achieve that truth table is. I don't know how well it actually stacks up to a human who puts in the effort but it works better than PCB autorouting anyway.
@weirdboyjim
@weirdboyjim День назад
It would be interesting to see, although next time I build a sync circuit I'll probably look at making it more configurable.
@MrHamof
@MrHamof 14 дней назад
6:20 Doing exactly this (taking a low current sound signal and turning it into a high current sound signal) was one of the first commercial uses of semiconductors. It's how radios worked, and how they took the very weak output from the antenna and turned it into something that could actually drive a loudspeaker.
@weirdboyjim
@weirdboyjim День назад
That's correct, good old CK703! Although the big push for integration on IC's really came from digital circuits for the space program.
@MrHamof
@MrHamof 14 дней назад
1:00 What's funny is that IBMs super cheap sound solution was still more advanced that the Apple II. If you're unfamiliar, the Apple II requires the CPU to directly address the speaker, which is why whenever a game (or other software) wants to play a sound effect it has to pause everything else while for every sample in the sound output the CPU talks to the speaker. So if you want a 10khz tone, you better believe the CPU has to bang bits at the speaker 10 000 times per second. Combined with the lack of any kind of timer circuitry and the mess that was the Apple IIs graphics circuitry this kind of thing is why the Apple II was probably the worst gaming machine out of the big three in the US.
@weirdboyjim
@weirdboyjim День назад
If I remember correctly the ZX spectrum was similar. Maybe I should have sidestepped the entire audio series with a 1bit output :-)
@MrHamof
@MrHamof 22 часа назад
@@weirdboyjim Wouldn't be nearly as much fun though.
@MrHamof
@MrHamof 15 дней назад
You might have done it by now, but something that makes a lot of sense to me is a macro to push/pull the entire transfer register into the stack, partly because it makes it a bit faster to write but also because it removes the possibility of getting the order wrong.
@weirdboyjim
@weirdboyjim День назад
I do have push / pop tx macros now. I can't remember when I added them.
@sanolivo6867
@sanolivo6867 18 дней назад
I hate to tell you, but that is not how you crimp those things
@weirdboyjim
@weirdboyjim День назад
I assure you, that is how I crimp those things. If you have a better method everyone would appreciate you sharing.
@Teckman8
@Teckman8 23 дня назад
Coming back to this a few times, I am forever in awe of the sheer ability of the 4 channel MIDI. Its on the struggle bus for a few sections, but overall it is great for what it is. Even if the graphics are only a bit on the chunky side, but it just works.
@weirdboyjim
@weirdboyjim День назад
Glad you enjoy it! I was very pleased with how this all came together!
@rsmrsm2000
@rsmrsm2000 25 дней назад
Amazing Congratulations Please more videos
@weirdboyjim
@weirdboyjim День назад
Thanks! Plenty more to come!
@HUEHUEUHEPony
@HUEHUEUHEPony 27 дней назад
buy an fpga old man
@weirdboyjim
@weirdboyjim День назад
Where would be the fun in that?
@ZEESHANALI-v4t
@ZEESHANALI-v4t 27 дней назад
You have done some great work, dude. And thank you so much for making this masterpiece series. I wanted to ask you about the list of all the components used in making this CPU and how much this whole costed you along with the schematic of the whole design. The reason is that i am planning to design this project for my final year and looking for the resources and information regarding this. Could you please provide me the list of components, whole design schematic and the amount of cost? I will wait for your response. Thanks!
@weirdboyjim
@weirdboyjim День назад
Firstly I'd like to say, do not underestimate how much effort it would be to reproduce this. It's taken me a lot of time, you definitely won't be able to do it without understanding the workings and principles. There will be issues along the way you need to diagnose. When the entire build is finished I may attempt to make some more detailed documentation but my time is split between many things. The schematics I've released at EasyEda give you most of what you need, but you would need to put a bit of work in.
@user-hn9gq5dz7g
@user-hn9gq5dz7g Месяц назад
No vi tantas diferencias.
@weirdboyjim
@weirdboyjim День назад
Work with these enough and you'll find the differences are significant.
@theleviathan3902
@theleviathan3902 Месяц назад
So the 2 address lines would go high when the failed constant load enters stage 1 after the memory load, then the same constant load, previously stored in the latch chip would get sent out onto the pipeline, but would't this mess up the constant? The constant would be what was currently coming from memory, but if the address lines are choosing the constant load over the constant, then wouldn't the constant load load in the opcode of the next instruction after the constant?
@weirdboyjim
@weirdboyjim День назад
The constant load instruction is what is held back until the memory contention passes, that way the regular load does get the correct data that followed in the instruction stream.