Mike Kohn
Mike Kohn
  • Видео 138
  • Просмотров 5 659 396
Apollo Guidance Computer In An FPGA
More Info: www.mikekohn.net/micro/apollo11_fpga.php
Here's an implementation of the Apollo Guidance Computer done in Verilog in an FPGA. The Apollo Guidance Computer being the computer that was used in the Apollo spacecraft and the moon lander.
Просмотров: 1 064

Видео

Mandelbrots w/ ARM64 Vector Instructions
Просмотров 2,2 тыс.7 месяцев назад
Website: www.mikekohn.net/software/mandelbrots_simd.php Here's a video generated on a Raspbery Pi 4 cluster using Kubernetes. The cluster produces 5652 Mandelbrot images that were generated using the ARM64 vector (SIMD) instructions to speed up the processing. The main code was written in C, but the function to generate the Mandelbrot is written in pure assembly language. The music in the video...
x86 and 68000 in an FPGA
Просмотров 1,9 тыс.9 месяцев назад
website: www.mikekohn.net/micro/micro_x86_68000_fpga.php This is an implementation of Intel x86 and Motorola 68000 in FPGA's. Only important instructions were implemented, an example the "not" instruction was left out because xor eax, 0xffffffff achieves the same thing. Each core has 8k of RAM and 4k of "ROM" and peripherals such as SPI and a music generator. More information and all source cod...
RISC-V in an FPGA
Просмотров 2,4 тыс.Год назад
Website: www.mikekohn.net/micro/riscv_fpga.php This is a RISC-V implementation I did in an FPGA. The demo shows a Mandelbrot being generated in software (no hardware multiply) and then demonstrates a custom "mandel" instruction I added to this implementation which computes each pixel in hardware. The last segment shows a program written in Java, compiled with Java Grinder, playing a song. The s...
Ferranti F100-L in an FPGA
Просмотров 1 тыс.Год назад
More Info: www.mikekohn.net/micro/f100_l_fpga.php This is a demonstration of an FPGA coded with Verilog to be a mid-1970's Ferranti F100-L CPU. The demo shows a Mandelbrot being generated in software using software multiplies and such and then a much faster hardware implementation. There's also servo control and the ability to write software for this project in Java using Java Grinder. Visit we...
RC Car Drag Race Circuit Version 4
Просмотров 647Год назад
Webpage: www.mikekohn.net/micro/drag_racing_tree.php This is a newer design of a previous project. This one uses ESP32-C3 modules (RISC-V based microcontrollers). Functionality wise it works the same as the MSP430 version, but this time communication between the circuits is done through WiFi (TCP). The start circuit also acts as a web server so the race can be started with a computer instead of...
Nintendo 64 Java Demo
Просмотров 20 тыс.2 года назад
Website: www.mikekohn.net/micro/nintendo64_java.php This a graphics / sound demo written in Java running on a Nintendo 64. The triangles are drawn using the N64's RSP which does 3D rotations / projections in MIPS/RSP assembly. More information along with a higher quality MP3 of the music is available on the website above.
Intel 8008 in an FPGA
Просмотров 6592 года назад
www.mikekohn.net/micro/intel_8008_fpga.php Here's my first soft CPU core written in Verilog. This is an Intel 8008 CPU running a program that is loaded from an SPI-like EEPROM on start up. The software is written in assembly language. The FPGA here is a Lattice iCE40 HX8K on an iceFUN board.
Water Glass Music
Просмотров 2892 года назад
Website: www.mikekohn.net/micro/solenoid_music.php Here are 8 (only 7 are visible) glass jars, bottles, and cups with an MSP430G2553 based circuit that triggers solenoids to play a song.
LEGO Data Reader
Просмотров 2,9 тыс.2 года назад
Website: www.mikekohn.net/micro/lego_data_reader.php Here is a computer program that blinks an LED on the Western Design Center W65C265SXB board stored as black and white LEGOs. The circuit will read black as a 1 and white as a 0 and transfer the program over a 2wire / SPI-like protocol. #LEGO
Sleepy Bee 8051 Java
Просмотров 1872 года назад
Website: www.mikekohn.net/micro/8051_java.php I recently added 8051 CPU support to Java Grinder and support for this Sleepy Bee development kit. This is a breakout game written in Java and compiled from byte code to 8051 assembly with Java Grinder to work on this board. #8051 #Java
Glow In The Dark Memory
Просмотров 2,4 тыс.2 года назад
Website: www.mikekohn.net/micro/glow_in_the_dark_memory.php This is a demonstration of using 8 glow in the dark stickers to act as 1 byte of computer memory. The memory is accessed using a Western Design Center MENSCH SBC (W65C265 / 16C816 CPU... 16 bit version of a 6502) and is interfaced through an iceFUN FPGA board. #FPGA #6502
Mandelbrot from Raspberry Pi 4 cluster
Просмотров 4,9 тыс.3 года назад
Web: www.mikekohn.net/software/mandelbrots_cluster.php Here's a Mandelbrot animation generated on a cluster of four Raspberry Pi 4 computers running Kubernetes. More information on the webpage posted above. The music is a song I did for an Amiga demo in Java from a couple years ago. #Mandelbrot #Kubernetes #RaspberryPi #Cluster
The Pixel Janitor
Просмотров 5073 года назад
Website: www.mikekohn.net/micro/pixel_janitor.php This is a Pixel 1 phone sending commands over Bluetooth to a motor control circuit connected to a Sticky Buddy roller so it can clean my floor. Click the website above for detailed info.
Cloud Atari 2600 Emulation
Просмотров 8013 года назад
www.mikekohn.net/software/cloudtari.php This is a demonstration of an Atari 2600 emulator that runs on a cluster of Raspberry Pi 4 computers orchestrated using Kubernetes. The screen is showing a desktop PC with 3 web browsers with different IP address (because of the camera / lighting invisible) running 3 different license-free Atari 2600 programs. The Space Revenge and Atari logo are written ...
Hacked Snax Sloth Toy
Просмотров 1,5 тыс.3 года назад
Hacked Snax Sloth Toy
Intellivision Breakout Written in Java
Просмотров 3563 года назад
Intellivision Breakout Written in Java
Romi + Windows 10 IoT
Просмотров 4003 года назад
Romi Windows 10 IoT
Automatic Spray Hack For Coughs
Просмотров 6354 года назад
Automatic Spray Hack For Coughs
Propeller 2 Mandelbrots
Просмотров 7454 года назад
Propeller 2 Mandelbrots
Remote Control Gingerbread House
Просмотров 2164 года назад
Remote Control Gingerbread House
Water Optic Communication
Просмотров 1,3 тыс.4 года назад
Water Optic Communication
Scalloping A Telecaster
Просмотров 4394 года назад
Scalloping A Telecaster
Tin Can Phone Modem
Просмотров 3,8 тыс.4 года назад
Tin Can Phone Modem
Talking Scale
Просмотров 3134 года назад
Talking Scale
Contactless Thermomter (Homemade).
Просмотров 1704 года назад
Contactless Thermomter (Homemade).
Weather Station Wind Chimes
Просмотров 1824 года назад
Weather Station Wind Chimes
Weather Station
Просмотров 2514 года назад
Weather Station
Social Distancing Enforcer Circuit
Просмотров 7904 года назад
Social Distancing Enforcer Circuit
Underwear Sail Car
Просмотров 8254 года назад
Underwear Sail Car

Комментарии

  • @Nika-1410
    @Nika-1410 4 дня назад

    Perfektní

  • @RobertoLeo3
    @RobertoLeo3 14 дней назад

    Only the Emotion Engine could run this. Great work!

    • @mikeakohn
      @mikeakohn 13 дней назад

      The Emotion Engine was fun to code on :) and thanks!

  • @wxua5859
    @wxua5859 28 дней назад

    That’s cool, how did you flash the assembly onto the controller?

    • @mikeakohn
      @mikeakohn 28 дней назад

      It's hardcoded in the FPGA's Verilog: initial begin $readmemh("rom.txt", fixed_memory); end The Makefile has some recipes for building specific test programs and generating the rom.txt from it. I could add a bootloader and read from UART, but meh... :)

  • @ezalb9893
    @ezalb9893 28 дней назад

    wow what an entresting project! I'd like to see it work more in depth, good job!

  • @wirelessdirk
    @wirelessdirk Месяц назад

    i've had this idea for years now, i truly believe Java could breath new life in the Amiga.

    • @mikeakohn
      @mikeakohn Месяц назад

      @@wirelessdirk i was lucky to even still have that amiga 1000 laying around to do that project.

  • @leendertolson1701
    @leendertolson1701 Месяц назад

    10/10

  • @x-12plus60
    @x-12plus60 2 месяца назад

    bro is this TinyFPGA ? if so where did you find a genuine one plz!

    • @mikeakohn
      @mikeakohn 2 месяца назад

      This is an iceFUN board .. in North America you can get it from www.robotshop.com/ .. I have more info on my website.

  • @xxenemyxx
    @xxenemyxx 2 месяца назад

    cool :)

  • @fabricio4794
    @fabricio4794 3 месяца назад

    man,your idea is fine

  • @Nika-1410
    @Nika-1410 5 месяцев назад

    Dobrá práce

  • @TigerFitoff
    @TigerFitoff 6 месяцев назад

    nice work

  • @pikadroo
    @pikadroo 7 месяцев назад

    Ah… bimbo ard

  • @qqldirdl9
    @qqldirdl9 7 месяцев назад

    Why?

  • @elmerjfapp5730
    @elmerjfapp5730 7 месяцев назад

    THOUSANDS OF YEARS AGO, before the dawn of man as we knew him, there was Sir Santa of Claus, an ape-like creature making crude and pointless toys out of dinobones and his own waste, hurling them at chimp-like creatures with crinkled hands regardless of how they behaved the previous year. These so-called "toys" were buried as witches, and defecated upon, and hurled at predators when wakened by the searing grunts of children. It wasn't a holly jolly Christmas that year. For many were killed. A war-like race of elves from the Red Planet landed on the ice-encased Earth, and they were immediately enslaved by the unevolved Santa Ape to make his confused toys using galactic elfin technology. Toys were made into recognizable shapes and given names like "train," but these toys were also thrown at predators and defecated upon because they were so stupid. Christmas still sucked, in a big way. THOUSANDS OF YEARS AGO the ice had made the globe invariable. Santa Ape did not know where the North Pole was. How could he? He was born before science existed. So he arbitrarily placed his workshop RIGHT HERE, long before they unionized, and Christmas was celebrated at each full Moon in front of a great red ape

  • @jsrodman
    @jsrodman 7 месяцев назад

    I'm a bit lost,i remember similar performance on xaos on Pentiums in 1998.

    • @mikeakohn
      @mikeakohn 7 месяцев назад

      xaos is a realtime Mandelbrot generator while this was 5000+ frames generated into .png files and turned into a video with ffmpeg. The reason I did this project is because I have interest in CPU instruction sets and I had been wanting to mess around with ARM64 vector instructions for years and finally found the time to do this. The Kubernetes part (other than clusters are just cool) was an excuse to mess with Kubernetes again incase I need it at my job or want to talk about it in a job interview. All the source code for this project is posted online, if you know of ways to improve the vector code, it would be cool to hear it. Please feel free to shoot me an email to discuss.

  • @DeviRuto
    @DeviRuto 7 месяцев назад

    what's with the flickering as the video zooms in? looks like some kind of floating point rounding error

    • @mikeakohn
      @mikeakohn 7 месяцев назад

      Short answer: Yeah, this is 32 bit floats. I kind of wanted to show the limit of the 32 bit, but looking back I probably shouldn't have done it with the flicker. It kind of looked interesting at some point though I think. Long answer: The coordinates for all frames to draw were picked with a Python script. The script starts with a r0, r1, i0, i1 that is known to have a good image. There were functions to zoom and shift (left, right, up, down) that took a delta value to know how much to add to r and i. So I would give it X iterations of a zoom and look at the picture at the point and make it shift up, down, etc for Y iterations to move to an interesting point.. then zoom again, shift again, etc. There's actually a point further in where the image started warping from the zoom but it destroyed the values of r and i so I didn't go in that far.

  • @Jim-be8sj
    @Jim-be8sj 7 месяцев назад

    Good one. Nice coding, right-hand guitar technique, and system admin skills to set up the cluster. :)

    • @mikeakohn
      @mikeakohn 7 месяцев назад

      Thank you for the positive words :).

  • @AmaroqStarwind
    @AmaroqStarwind 7 месяцев назад

    "Is [the mandelbrot set] an instrument?”

    • @didiwin78
      @didiwin78 7 месяцев назад

      No, this is Patrick!

    • @conqu3red545
      @conqu3red545 7 месяцев назад

      Hey, I recognise you...

  • @samuelbucher5189
    @samuelbucher5189 7 месяцев назад

    Cool on a technical level, but I simply can't not leave a dislike after hearing that music. If that is the current limit of you musical skill, then you should focus learning and practice instead of spending money on all those guitars.

    • @gblargg
      @gblargg 7 месяцев назад

      I expected massive zooming in. What's in this video doesn't need a cluster to calculate I had no problem with the music. I assume the sound was intentional.

    • @sayorancode
      @sayorancode 7 месяцев назад

      wydm? the music is fire ngl. leaving a like on this vid

  • @methewhenmethe8055
    @methewhenmethe8055 7 месяцев назад

    this is awesome thank you youtube for recommending this to me i really need to learn assembly

    • @mikeakohn
      @mikeakohn 7 месяцев назад

      Thanks!!! If you're interested in microcontrollers, MSP430 is one of the easiest assembly language to learn.

  • @lastguest
    @lastguest 10 месяцев назад

    Cybernecromancy

  • @rafaelmedinacastillo4090
    @rafaelmedinacastillo4090 10 месяцев назад

    Where's the chicken?

    • @mikeakohn
      @mikeakohn 10 месяцев назад

      No chickens were eaten in the making of this video.

  • @Dreijer94
    @Dreijer94 11 месяцев назад

    Thanks for the video!

  • @oed1461
    @oed1461 11 месяцев назад

    This is so cool! Also you could make it analog like dial-up modems, it'll be faster.

    • @mikeakohn
      @mikeakohn 11 месяцев назад

      Thanks!! I think the chip used here to detect the tones (LM567) was actually used in very early modems (300 baud?), so something like this really could be done.

    • @oed1461
      @oed1461 11 месяцев назад

      @@mikeakohn Maybe I can try it myself with arduinos. I don't have that level electronic knowledge. But i'll try file transferring.

    • @mikeakohn
      @mikeakohn 11 месяцев назад

      Go for it.. If you need help feel free to ping me. I'll tell you though, I had a really hard time with the receiver side of the circuit... I myself am a software guy... the issue being making the microphone sensitive enough to pick up such a soft sound without adding noise to the input of the LM567. The LM567 also can be tuned for frequency and I believe also how fast it will respond to that frequency...

    • @oed1461
      @oed1461 11 месяцев назад

      @@mikeakohn Thank you for your support! I will start a week later, I can't access my tools right now. Maybe I will share it to internet too.

    • @oed1461
      @oed1461 11 месяцев назад

      @@mikeakohn And I have a recommendation for your project if you have it now. You can change signal length to frequency so you can make communicaton like 2x faster

  • @matgaw123
    @matgaw123 Год назад

    Cool

  • @AndrewHelgeCox
    @AndrewHelgeCox Год назад

    Did you run the frame generation on the GPUs? A Mandelbrot generator should be interactive on a Pi GPU, I'd guess. The overheads of distributing the work and getting results back might overwhelm the parallelism benefits, and the cost of serially encoding a video on a single node might dominate the total run time if the GPUs were generating the frames.

    • @mikeakohn
      @mikeakohn Год назад

      Nah... no GPU. The reason for the project was to learn Kubernetes, so it was more of an exercise in that rather than to try to figure out how to generate the images very fast. Could be interesting though if one processes per Pi did have a GPU based generator.

    • @AndrewHelgeCox
      @AndrewHelgeCox Год назад

      @@mikeakohn Ah okay, fractal generation is definitely a handy CPU workload for this sort of thing. I've used it myself. Nice benefit that the demo looks pretty too!

  • @tenzingyatso5096
    @tenzingyatso5096 Год назад

    Wow!!! I'm far from hardware, could you please make a video how you did it? How did you make that logic in code? You're video make me so curious!

    • @mikeakohn
      @mikeakohn Год назад

      That would be a pretty long video I think :(. I have a somewhat long explanation of the project on my website (there's a link in the description). If you do software and have a basic understanding of logic gates, you'd have no trouble picking up Verilog. In some ways I think it's a little easier than it looks. I can send you a link to a Verilog tutorial of you want?

    • @Black_Engineer
      @Black_Engineer Год назад

      Send a link, please.

    • @mikeakohn
      @mikeakohn Год назад

      This one was really nice: www.asic-world.com/verilog/veritut.html

    • @Black_Engineer
      @Black_Engineer Год назад

      @@mikeakohn Thank you very much!

  • @erenbulbul9428
    @erenbulbul9428 Год назад

    Great project.

  • @randypeeters3931
    @randypeeters3931 Год назад

    Did you write the risc-v core yourself?

    • @mikeakohn
      @mikeakohn Год назад

      Yep! This is my 2nd or 3rd CPU... still learning it.

    • @randypeeters3931
      @randypeeters3931 Год назад

      @@mikeakohn oh very cool. I also was thinking to write a risc-v core myself but you know, we all have not much time. Btw did you write the core by just reading the opcodes?

    • @mikeakohn
      @mikeakohn Год назад

      @@randypeeters3931 Yeah, I wrote an assembler for it a while back. RISC-V was for the most part was pretty easy, the hardest part is some of bits in some of the opcodes are permutated. So not only are the bits broken up in different areas of the 32 bit opcode, they aren't in order.

    • @whatamievendoing
      @whatamievendoing Год назад

      ​@@mikeakohn that is so cool! I wonder if you could get Linux running on it

    • @mikeakohn
      @mikeakohn Год назад

      @@whatamievendoing I only implemented the bare minimum instructions (no MMU, no FPU) .. around 87% of the FPGA is full. Also, the FPGA has some built in SRAM.. this design is only using 8k of it for RAM and some for other stuff. The chip only has 16k bytes of RAM I think. Can do other fun stuff with it though :).

  • @RlMEFANG
    @RlMEFANG Год назад

    what's the fpga board you used in this project?

    • @mikeakohn
      @mikeakohn Год назад

      It's an iceFUN board (sold by Robot Electronics in Europe and The Robot Shop in North America). This is a really great board for projects like this... the grid of 4x8 LEDs really helped with debugging.

  • @TotallyBCK
    @TotallyBCK Год назад

    That's really cool!

  • @Nadzap
    @Nadzap Год назад

    Super cool

  • @derekchristenson5711
    @derekchristenson5711 Год назад

    While I can't imagine that being practical, it looks like it was a fun little project. 🙂

  • @nfixz
    @nfixz Год назад

    thats crazy! good work man

  • @Lantertronics
    @Lantertronics Год назад

    Cool! That reminds me of a Williams tube CRT memory.

  • @pinguin00o73
    @pinguin00o73 Год назад

    The movie 9 be like this

  • @Zabrakjedi
    @Zabrakjedi Год назад

    This was made for stoners.

  • @lintfordpickle
    @lintfordpickle Год назад

    this is awesome - well done

  • @areyouseriousholmes
    @areyouseriousholmes Год назад

    love the video i hate that they cant let u choose what time you want, they could have a knob on it and u just turn it to any minute you want, but nooo, we gotta have you use it all up in a certain amount of time

    • @mikeakohn
      @mikeakohn Год назад

      That would actually be super easy to write firmware for. Hardest part is taking out the old circuit board.

  • @alrtgy9642
    @alrtgy9642 Год назад

    Very nice.

  • @akasha1337
    @akasha1337 Год назад

    Nice how to bypass timer and work by button only

  • @jamies3190
    @jamies3190 Год назад

    Is this open source?

    • @mikeakohn
      @mikeakohn Год назад

      I put "License: BSD" on the top of the source code. Feel free to grab it from my github repo.

  • @jasonfrakk6647
    @jasonfrakk6647 Год назад

    Bring back the w-house!

  • @hsn10
    @hsn10 Год назад

    good work.

  • @regent70
    @regent70 Год назад

    why is it needed?

  • @Sentarry
    @Sentarry Год назад

    Me installing java on my pc: runs on billions of devices? huh. Mike: me: 🤯

  • @tr7zw
    @tr7zw 2 года назад

    Really cool project. Pointless? Probably. But also shows the technical possibilities of using java bytecode as an intermediary.

  • @chucksucks8640
    @chucksucks8640 2 года назад

    I always the java vm would have been perfect on the game consoles.

    • @mikeakohn
      @mikeakohn 2 года назад

      This is actually not a VM, Java Grinder compiles Java byte code into MIPS assembly language..

  • @jonnyb44
    @jonnyb44 2 года назад

    This is absolutely amazing... would it be hard to display the time on the start line??

    • @mikeakohn
      @mikeakohn 2 года назад

      Thanks! Do you mean move the 7 segment displays to the start circuit instead of at the end?

    • @jonnyb44
      @jonnyb44 2 года назад

      @@mikeakohn yes. Would be easier to see the winners time at the start line. I’m getting old my eyes stink.

    • @mikeakohn
      @mikeakohn 2 года назад

      With this particular circuit.. it's using an MSP430G2553 microcontroller and every single pin on the microcontroller is being used. It would take 4 extra pins to add a display like that.. and to have 2 displays, they would have be kept in sync. I have a new design in mind with a chip that has more pins, but I have other ideas for that one that might be better than adding a display on the front circuit...

  • @TheMeowthTeamV2
    @TheMeowthTeamV2 2 года назад

    This is really cool