Happy Little Diodes
Happy Little Diodes
  • 180
  • 472 669
ZX Spectrum Reactive Device Interface - What would you do with it?
Thanks PCBWay for sponsoring this video - pcbway.com/g/RNs69K - Use this link for $5 new user free credit.
I've always wanted to build this thing!
Wondering how you can support the channel?
Become a member! Click "Join"
Join us on Patreon - www.patreon.com/happylittlediodes
Try the "Thanks" button underneath this video
Join me on Discord! - discord.gg/dxkdjgfQYP
Links to things I use on Amazon - linktr.ee/happylittlediodes
Like!
Comment!
Subscribe!
Share!
Cats!
Переглядів: 3 237

Відео

APA102 LED Strips - Arduino Basics - Let's Figure This Out Together
Переглядів 535Місяць тому
Thanks PCBWay for sponsoring this video - pcbway.com/g/RNs69K - Use this link for $5 new user free credit. I love tinkering with Arduino, and I love learning about and understanding something that I've previously not understood AT ALL. So let's learn, together, about how these popular strip LEDs work, and write some code (from scratch, no APA102 libraries) to make sure we really, properly get i...
Turn your Pico into a 400MHz 24 Channel Logic Analyser
Переглядів 73 тис.Місяць тому
Thanks PCBWay for sponsoring this video - pcbway.com/g/RNs69K - Use this link for $5 new user free credit. If you are interested in this project, you can find all the information here. Please support eldrgusman who created this thing - github.com/gusmanb/logicanalyzer Let's try this amazing project out and build our own project to interface directly to the ZX Spectrum Edge Connector! Previous v...
What a Palaver! ZX Spectrum Repair - RAM issues?
Переглядів 1,8 тис.2 місяці тому
What a Palaver! ZX Spectrum Repair - RAM issues?
Crazy RAM Failure Mode! - ZX Spectrum Repair with Explanations
Переглядів 2,3 тис.2 місяці тому
Crazy RAM Failure Mode! - ZX Spectrum Repair with Explanations
ZX Murmulator 1.4 - Emulator Build
Переглядів 2,4 тис.3 місяці тому
ZX Murmulator 1.4 - Emulator Build
Thermal Master P2 - A really small thermal camera for your phone
Переглядів 95 тис.3 місяці тому
Thermal Master P2 - A really small thermal camera for your phone
Build - Raspberry Pi Based Retro Gaming Emulator - ZX Murmulator
Переглядів 3 тис.4 місяці тому
Build - Raspberry Pi Based Retro Gaming Emulator - ZX Murmulator
50 Year Old Sinclair Multimeter - Does it work?
Переглядів 4,5 тис.4 місяці тому
50 Year Old Sinclair Multimeter - Does it work?
Build - gusmanb's 24 Channel 100MHz Logic Analyser
Переглядів 49 тис.4 місяці тому
Build - gusmanb's 24 Channel 100MHz Logic Analyser
ZX Spectrum 80K Upgrades Part 2 - What's going on here then???
Переглядів 2,1 тис.6 місяців тому
ZX Spectrum 80K Upgrades Part 2 - What's going on here then???
Can you get 80K out of your 48K ZX Spectrum with just one extra chip??
Переглядів 7 тис.6 місяців тому
Can you get 80K out of your 48K ZX Spectrum with just one extra chip??
TOPDON TS001 Thermal Imaging Camera Review and ZX Spectrum Repair
Переглядів 3,1 тис.7 місяців тому
TOPDON TS001 Thermal Imaging Camera Review and ZX Spectrum Repair
ZX Microdrive Chronicles - Felt, Rubber, and Emulation with the VLA1 and vDriveZX
Переглядів 2,1 тис.7 місяців тому
ZX Microdrive Chronicles - Felt, Rubber, and Emulation with the VLA1 and vDriveZX
Check out this home PC from 1978 - Transam Triton Part 5
Переглядів 1,1 тис.7 місяців тому
Check out this home PC from 1978 - Transam Triton Part 5
ZX Nucleon 512KB - Build Part 3 - Job Done!
Переглядів 2,5 тис.8 місяців тому
ZX Nucleon 512KB - Build Part 3 - Job Done!
Relaxing Electronic Repair - ZX Spectrum 128K Toastrack
Переглядів 2,3 тис.9 місяців тому
Relaxing Electronic Repair - ZX Spectrum 128K Toastrack
ZX Nucleon 512KB - Build Part 2 - Passives
Переглядів 1 тис.9 місяців тому
ZX Nucleon 512KB - Build Part 2 - Passives
ZX Interface 1 and Microdrive Issues!
Переглядів 2,4 тис.10 місяців тому
ZX Interface 1 and Microdrive Issues!
Win a Spectrum! - 2000 Subs Giveaway
Переглядів 50511 місяців тому
Win a Spectrum! - 2000 Subs Giveaway
ZX Nucleon 512KB - Build Part 1 - SMD
Переглядів 1,7 тис.11 місяців тому
ZX Nucleon 512KB - Build Part 1 - SMD
Sinclair ZX81 Repair - White Screen and No Cursor
Переглядів 1,7 тис.Рік тому
Sinclair ZX81 Repair - White Screen and No Cursor
ZX81 Composite Video Mod - Fit and Test
Переглядів 1,3 тис.Рік тому
ZX81 Composite Video Mod - Fit and Test
The Commodore PET Companion - Composite Video - Kit Build
Переглядів 503Рік тому
The Commodore PET Companion - Composite Video - Kit Build
Issue Two ZX Spectrum Repair - A Write Off?
Переглядів 1,8 тис.Рік тому
Issue Two ZX Spectrum Repair - A Write Off?
ZX Spectrum 128K +2 Grey - Fixing Noisy Audio
Переглядів 1,3 тис.Рік тому
ZX Spectrum 128K 2 Grey - Fixing Noisy Audio
ZX Spectrum Toast Rack Repair - The RAM Killer
Переглядів 1,3 тис.Рік тому
ZX Spectrum Toast Rack Repair - The RAM Killer
Reverse Engineered - Amiga Retro Joypad From 1994
Переглядів 550Рік тому
Reverse Engineered - Amiga Retro Joypad From 1994
ZX Spectrum 128K Toastrack Cold Start Issue and Fix
Переглядів 1,3 тис.Рік тому
ZX Spectrum 128K Toastrack Cold Start Issue and Fix
ZX Spectrum 128K Toastrack Repair - Games Crashing When Keys Pressed
Переглядів 1,1 тис.Рік тому
ZX Spectrum 128K Toastrack Repair - Games Crashing When Keys Pressed

КОМЕНТАРІ

  • @henols
    @henols 2 дні тому

    For accessing the data bus directly without using a flip-flop, you can access the input register directly. If you rewire the data bus to pin 42 - 49 you can read the bus value from reg PINL. Ex: ``` // Set as input DDRL = 0x00; // Read bus byte bus_val = PINL; ``` I really like idea!

  • @kees-ft1yb
    @kees-ft1yb 6 днів тому

    i cant wait for the next version. long ago , i build one myself with the cypres chip , and 2 seperate eproms for the PID and the VID. I also made it with input protection diodes , the BAT83S . These have a low capacitanse. I also made some computer software in Delphi , but it was lost somehow.

  • @AmbroseClarke
    @AmbroseClarke 6 днів тому

    This is great! I wonder if there is a fast micro that could do all that address decoding in software to reduce the chip count? I recently used a Ben Heck cool way of wiring to make a complex board - using thin wire wrap wire, on the board underside- you just solder through the insulation to the pins - so no wire stripping and you can do multipoint connections without cutting. Much more fun than measuring each wire. Quicker and neat too. Cool vid thanks.

  • @jonathanwhiteside6092
    @jonathanwhiteside6092 7 днів тому

    Very nice little project. Perhaps another LED strip showing the number of lives?

  • @RixtronixLAB
    @RixtronixLAB 7 днів тому

    Creative, terima kasih:)

  • @occamraiser
    @occamraiser 7 днів тому

    I WANT one.

  • @JuulCPH
    @JuulCPH 8 днів тому

    This looks great! For those of us with less focus on retro tech it would really help if there was a 1.8 V reference voltage built into the board as that's a super common voltage nowadays :)

  • @csigabigaboca1987
    @csigabigaboca1987 8 днів тому

    I can't find the executable exe file on github...

  • @maschinenorganismus
    @maschinenorganismus 8 днів тому

    Great video, need project!

  • @TUSIP
    @TUSIP 8 днів тому

    My question is, since you can access the whole data and address bus, would it be possible to use an arduino to load programs into ram and execute using a special peek or poke command?

    • @HappyLittleDiodes
      @HappyLittleDiodes 8 днів тому

      I'm thinking of including a poke feature... Testing permitting. So yes that would be possible. It will take more io pins to achieve, however

  • @mikehaas543
    @mikehaas543 8 днів тому

    A little suggestion instead of the wire you used for this project I would suggest getting some 30 gauge Kynar wire wrapping wire. It is smaller, easy to solder, easier to manage and also comes in many different colors. I have been using that type of wire since the 80's for doing projects like this all the way back in elementary school. Hope you have fun

  • @cressytisswuff
    @cressytisswuff 8 днів тому

    This is epic, I swear, before I got to the bit where you said what your idea was, I was going to post that you could output from the arduino to set some sort of mood lighting or environment lighting depending on the game being played. It made me think of that guy who decorated a Christmas tree with programmable lights and ran submitted code. You think that's a mess, you aint seen nothing! Happy New Year by the way mate (late I know)

    • @cressytisswuff
      @cressytisswuff 8 днів тому

      If you need quicker reading, you can write your own low level code for accessing/polling the data on the arduino pins, ADMUX, I've looked at this quite a bit but it was a long time ago, I found some really good resources on this which I'll try and dig out

    • @HappyLittleDiodes
      @HappyLittleDiodes 8 днів тому

      Happy New year buddy. I've got some help on the coding side, going to nick an atmega from an Arduino micro and solder it straight to a new PCB and do the latching in software

  • @NaderGator
    @NaderGator 10 днів тому

    the interface has 74LS244 , but the explanation digrams you're showing 74LS240 (inverted outputs) .. 😮

    • @HappyLittleDiodes
      @HappyLittleDiodes 10 днів тому

      Well spotted! I must have made a mistake, it was 4 years ago and I knew even less than I do now :D. I didn't know back then that datasheets could describe multiple variants of a chip

  • @richardpowell8198
    @richardpowell8198 10 днів тому

    You could use one of those electric shock games and when you die you get a shock that would be funny 😂 well done on the project 👍

  • @byronneedham529
    @byronneedham529 10 днів тому

    Hi, what a great idea 👍 Really enjoyed the way that you described the steps from the drawing to the working prototype. You made it very easy to understand what was happening within the actual hardware. How about Health in Dan Dare or one of the Dizzy games?

  • @dougzimmerman3858
    @dougzimmerman3858 10 днів тому

    It’s fun to play with old hardware when the designs were so much simpler…. Ah

  • @PierceAndjelkovic
    @PierceAndjelkovic 10 днів тому

    An idea I had, started but not seen through, was to do something similar for a speedometer and rpm cluster to read directly from the memory from older games. I wanted to send the data directly to the cluster as an initial PoC, but then creating a UDP telemetry server so other standard racing sim telemetry clients could consume the data. Inversely, I also wanted to inject inputs from an external controller into the game (in this case a steering wheel with analog throttle and brake) where only digital inputs were available.

  • @gethynboustead6572
    @gethynboustead6572 10 днів тому

    I love this, very imaginative, though I have to say you are really hardcore doing this on vero, i’d have gone straight to ki cad and got them from china. You could add a little oled screen and some buttons to the arduino, to select from a number of games (that you know the address to monitor) then ad a jumbo led type thing for a life counter.

  • @frankowalker4662
    @frankowalker4662 11 днів тому

    Cool.

  • @frankowalker4662
    @frankowalker4662 11 днів тому

    I made 3 of these Z80 PIO breakout boards. One with Channel A as input and B as output, another with A and B as inputs and the third with A and B as outputs. I also put opto isolators on the I/O pins of the PIO for extra protection. (Hence the three versions) BTW, If you use the shorter edge conector, you can use these on the ZX81. LOL. The pinouts are in the same place.

  • @fastlandnet
    @fastlandnet 11 днів тому

    I'm sad that dip ICs are slowly disappearing (because smd) and builds like yours will no longer be possible.

  • @frankowalker4662
    @frankowalker4662 11 днів тому

    Great little circuit. You could have it flash a load of red LED's when you crash a car or get shot while flying a plane. You could try hooking up a rumble seat ?

  • @mikeh_nz
    @mikeh_nz 11 днів тому

    I was thinking about the effective code in each led to process the incoming data from your arch up. I was expecting your code not to work as you were effectively forming & transmitting the end frame from your led frame - I assumed you’d then find out that the global didn’t go up to all ones) - but I was wrong. I’m now assuming that you don’t need the end frame at all. Never transmitting the end frame, and just the start frame must be sufficient to reset each led to await data. You might want to give that a try and see if it still works correctly

  • @flatduckrecords
    @flatduckrecords 11 днів тому

    Lovely! What a great idea. How about hooking up IORQ and picking up port writes as well? Grab the lower three bits going to port 254 (or any even numbered port actually) and you've got the border colour; sync that to your LEDs for a nifty Philips "Ambilight" effect! Maybe? I wonder if the beeper (or tape loading) would drive it too fast, though? There's lots of interesting stuff in the system variables that might be fun to watch while BASIC is running. PPC (23621) is the line number being executed. Output that to an LCD?

  • @stephenpalmer9375
    @stephenpalmer9375 11 днів тому

    Nice e-ink display showing the score on a Match Day or Jonah Barringtons Squash

  • @eliotmansfield
    @eliotmansfield 11 днів тому

    That wire looks thick enough to start a car! - you need what I used to call “mod wire” which is far thinner, seems to be known as kynar wire.

    • @HappyLittleDiodes
      @HappyLittleDiodes 11 днів тому

      I know I know, it needs using though, I have some kynar wire but only in red and extremely thin. There's a middle ground that I'm not at yet!

  • @helmargesel3972
    @helmargesel3972 11 днів тому

    Thanks for sharing your impressive work

  • @robertprice7989
    @robertprice7989 11 днів тому

    I assume this is the approach the ZX HD interface takes. Sniff any writes to screen memory, then use that to rebuild the picture locally on the Raspberry Pi, and output the result using the HMDI port.

  • @Mr.1.i
    @Mr.1.i 12 днів тому

    back in the day...u could link the speccy with a serial to an amstrad cpc developers would input on the spectrum and make minor ajustments to the software thats bulk dumped into the amstrads memory

  • @LarsHHoog
    @LarsHHoog 12 днів тому

    Another interesting video. I think that Ben Eater has some videos about such cable management. Happy diode hacking!

  • @mryon314159
    @mryon314159 12 днів тому

    That is silly. And I loves it!

  • @SmashCatRandom
    @SmashCatRandom 12 днів тому

    The Z80 takes at least 3 clock cycles to write to the bus, although you wouldn't see the /WR and /MREQ until the second cycle, so assuming a 3.5Mhz Z80, and 16Mhz Arduino you'd have just under 10 clocks on the Arduino to capture the value on the data bus. This isn't enough time for a pin change interrupt handler due to the overhead (pushing registers to stack etc). However, a tight ASM loop *could* handle this, so long as the data was all on the same 8-bit port, and NOR gate input on another port, with all other pins unused. There are single cycle instructions to copy a port value to a register, so yeah, it's possible to remove the latch 😁

  • @10p6
    @10p6 12 днів тому

    Very Interesting. :-)

  • @NotMarkKnopfler
    @NotMarkKnopfler 12 днів тому

    Very nice! You could use an MCP23017 I2C expander chip. This will give you 16 bits of input or output which is controllable from the micro controller via the I2C pins (SCL and SDA pins). That means you only need two pins on the micro controller to control 16 pins on the MCP23017. That means you could run the project on a regular Arduino rather than an Arduino Mega. If you added a PCF8574, that will give you another 8 bits of IO on the I2C interface for the data bus. You would only then need one hardware IO to the micro controller: The trigger for when you get an address match. You could then read the latched data value via the PCF8574 and even run the project on an Arduino Nano 🙂

  • @rabindrasharma
    @rabindrasharma 12 днів тому

    @Jim for the bottom layer you can use bare wires and then use insulated wires they way you can have less wires, and not tying the pull ups or enable signal is very common, great video .

  • @bread8070
    @bread8070 12 днів тому

    That was a really fun little project. I enjoyed watching. I’m not sure that an Arduino would be fast enough to do everything in software, but a Pico definitely could, especially if you use the PIOs (although there’s quite a learning curve to using them). Also, when you were looking at the Z80 data sheet you mentioned that the read data wasn’t on the bus for very long. For a write the data sheet shows when the Z80 is outputting data. For a read it’s showing when the external device must be outputting the data so the Z80 can read it. The period when the data is actually on the bus will be dictated by the external device (ROM, RAM, etc) and will probably be more than long enough for the Arduino to sniff the value.

    • @HappyLittleDiodes
      @HappyLittleDiodes 12 днів тому

      A Pico would pull it off I'm sure, but I'm not familiar with programming them, especially not bare metal. If the idea picks up any traction we can explore it!

  • @Brian_Of_Melbourne
    @Brian_Of_Melbourne 12 днів тому

    You should use the daisy chaining capability of the '688 like this: /MREQ to /G1, /P=Q1 to /G2, /P=Q2 to a NOR gate (74LS02) along with /WR. Not sure why you didn't use a 36 pin two row male connector on your board so the Arduino MEGA could be plugged in directly. Improved reliability!

    • @HappyLittleDiodes
      @HappyLittleDiodes 12 днів тому

      That's a good idea with the daisy chaining. Regarding the connector, this is just an interim solution, when I get boards made I will transmit data serially using only a couple of pins, a nano will be part of the interface rather than attached with jump leads.

  • @markretro3612
    @markretro3612 12 днів тому

    how did you identify the address that manic minor is using for the air data ? gives me so many ideas.. the TK pie etc uses this sort of idea to sniff writes to the video data

  • @daved1818
    @daved1818 12 днів тому

    If you wanted to extend this beyond a single address byte you could possibly remove the comparator part and instead latch the address and data every time there is a data write. The write could trigger an interrupt on the Arduino which could then process various actions based on the address. This would allow for full sniffing of the data bus, so for example you could reconstruct screen data.

    • @HappyLittleDiodes
      @HappyLittleDiodes 12 днів тому

      Great idea!

    • @tiborbogi7457
      @tiborbogi7457 11 днів тому

      I am just curious how many instructions can arduino execute while data are valid on specy data bus. Is arduino quick enough to execute interrupt subroutine? As I know Z80 is running at 3.5 MHz and arduino at 48MHz. From time flow at 11:44 data are valid for max 2 clock cycles. I assume arduino execute 1 instruction on 1 clock, so (48/3.5)*2 is 27 instructions. So there is less then 27 instructions, may be just 13.

    • @daved1818
      @daved1818 11 днів тому

      @@tiborbogi7457 but the data is latched so you'd have until the next write cycle. The interrupt routine could simply copy the data into local memory to create a copy of the 48k and then access that in slower time.

    • @daved1818
      @daved1818 9 днів тому

      I've done a quick test using 3 latches to capture the address and data busses when mreq and wr go low which also triggers an interrupt on the Arduino (still need the NOR gate for this but not the comparator). The interrupt routine only has two lines of code, one to pull the address data in, the second to pull the data into an unsigned char array if address is within the screen area. This is fast enough that the spectrum's screen can be successfully recreated with the Arduino's memory. It only has 8k so unfortunately can't reconstruct the entire 48k memory but still expands the possibilities. I wired up the latches to Arduino Port banks so I can read the latches with PINA, PINB and PINC to get entire bytes at a time.

    • @HappyLittleDiodes
      @HappyLittleDiodes 9 днів тому

      @daved1818 great stuff! I'm hoping to evolve this doing something similar, a box arrived from mouser today

  • @RudysRetroIntel
    @RudysRetroIntel 12 днів тому

    Excellent and amazing!! Thanks for sharing

  • @HappyCodingZX
    @HappyCodingZX 12 днів тому

    Excellent work! With enough knowledge of the game code itself the sky is the limit with this. The first thing I thought of was the ability to play sound samples. I've done a few arcade conversions that could be modded to trigger something like this.

  • @1107ml
    @1107ml 12 днів тому

    Excellent, ❤

  • @hbox21
    @hbox21 12 днів тому

    good work mate. Well done

  • @HappyLittleDiodes
    @HappyLittleDiodes 12 днів тому

    Thanks for watching! Ideas I've had to get the ball rolling: - LED Strip Health Gauge - Split flap score counter/timer - Philips Hue integration? - External sound device for announcements - Small display showing game status? Map? Inventory? Would you be interested in this as a pre built device? A kit? I'll be manufacturing some soon

  • @ianide2480
    @ianide2480 12 днів тому

    For that HDMI port - use a clothes pin or chip clip (something with low force) to hold it in place, position it, then solder the legs into place.

  • @ianide2480
    @ianide2480 12 днів тому

    Try using your hot air to gently warm the pads up a tad then apply the solder paste. If it is still not going down very well, add a bit more heat.. You'll figure out the right amount of heat after a few tries. As long as you aren't heating the pad up enough to melt the solder you're fine.

  • @JosepsGSX
    @JosepsGSX 12 днів тому

    Late comment: Try thinner (I use 2.8mm) branded flux-infused wick. I assure you will immediatly notice the difference. I tested and never returned to the wide cheap one. Also cutting small sections and using them with tweezers limits the heat disipation and is widely suggested, although I am too lazy for that.

  • @1107ml
    @1107ml 13 днів тому

    Another great video jim

  • @Dr_Mario2007
    @Dr_Mario2007 13 днів тому

    400 MHz sample rate is fast enough to watch what a Pentium II processor is doing. 🫣 Impressive stuff.

  • @Max_Pi
    @Max_Pi 14 днів тому

    Is this analyzer compatible with PulseView?

    • @HappyLittleDiodes
      @HappyLittleDiodes 14 днів тому

      You can export to CSV and then import

    • @Max_Pi
      @Max_Pi 13 днів тому

      @@HappyLittleDiodes I meant directly from PulseView without using your software?