![Matthew P](/img/default-banner.jpg)
- 51
- 3 490
Matthew P
เข้าร่วมเมื่อ 21 พ.ค. 2016
Jigglypuff is a bad muthalova
Homemade F1C100s Development Board
The processor boots from a micro SD card that has a bootable linux image.
If there is no SD card in the SD card slot, the processor boots into USB Fel mode.
Currently, Im able to UART into the device and navigate the file system.
Future plans are to have the processor output a composite video signal.
If there is no SD card in the SD card slot, the processor boots into USB Fel mode.
Currently, Im able to UART into the device and navigate the file system.
Future plans are to have the processor output a composite video signal.
มุมมอง: 299
วีดีโอ
Li Chee Nano ( Allwinner F1C100s SOC ) booting from onboard SPI flash
มุมมอง 802 หลายเดือนก่อน
I have a UART connection and a Putty terminal open.
Bluetooth Low Energy N64 Controller Port Bitbanger
มุมมอง 248 หลายเดือนก่อน
An ESP Wroom 32 board reads an SNES Controller and sends the button presses to an ESP32C3 board using BLE. The ESP32C3 reads the SNES controller button presses through BLE and bitbangs the N64 controller port( acting like an N64 controller ) It works good enough for super smash bros so this is where I stop !
ESP32-C3 Bit Banging an N64 Controller Port
มุมมอง 12410 หลายเดือนก่อน
The ESP32 is running a sketch that allows it to recreate N64 Controller Bytes using one of it's UART controllers with a 6N1 Data format and baudrate of 1000000. This allows the ESP32 to emulate an N64 controller. A tactile switch on the breadboard is used as a " Start " button. In the future, I want to use the ESP32 PS3 controller library to allow the ESP32 to act as a wireless PS3 to N64 contr...
STM32 IR Reciever Driver
มุมมอง 30ปีที่แล้ว
The IR reciever PCB was taken out of a 7 inch car monitor, it spits out 3.3V logic that is clear enough to understand on a logic analyzer so a microcontroller should have no problem reading the bits ! This was my first project using the STM32F446. I used tutorial code online for measuring the 13mS period starting bit of the IR signal using a channel on TIMER 2. Then I configured another channel...
Rotating Backface Culled Cube on the Pi Pico
มุมมอง 64ปีที่แล้ว
My first attempt at backface culling. I used the shoelace method for after the 3D cube is projected on the 2D TV screen. It has some bugs but its good enough for now.
Raspberry Pi Pico NTSC Wireframe 3D Cube
มุมมอง 69ปีที่แล้ว
I ported Brensenham Line drawing algorithms to my 240p NTSC program. Then made a triangle function and used it the Arduino TVout Library's rotating cube example code that I ported to work in C. Next step would be to scanline render but i might be pausing here till I study Linear Algebra to make my own rendering functions.
Traffic Light Program made in Ladder Logic
มุมมอง 6ปีที่แล้ว
Software : Studio 5000 Logix Designer The traffic light animation is a project running in FactoryTalk View Studio that is linked with the studio 5000 program running on a PLC emulator. Next is to do it in Structured Text instead of Ladder Logic.
Cyclone 2 FPGA reading Gamecube Controller Bytes
มุมมอง 79ปีที่แล้ว
There are 2 VHDL Blocks. One sends the Gamecube Controller hexadecimal commands asking for button states. Then that block alerts the other VHDL block when it has sent the commands and tells it to be on the alert for incoming Gamecube Controller bytes. Since Start & Y are the first two buttons in the bit stream i made those bits output to LEDs to show if they were getting captured or not. After ...
Reading SNES controller with VHDL
มุมมอง 47ปีที่แล้ว
github.com/BambooEngineer/SNES_Controller_Reader
Softmodded Wii offgrid setup
มุมมอง 12ปีที่แล้ว
A 2p3s battery pack provides power and is solar rechargable with a PWM Controller. With a switch mode buck converter it also powers a 5 inch car monitor & a push pull class B audio amplifier. The Wii is softmodded and uses a USB flashdrive to store games. The battery can power everything for more than 3 hours on a full charge.
Pi Pico NTSC Sprite Animation, PNG image, and Pong
มุมมอง 1542 ปีที่แล้ว
NTSC fake progressive H syncs & V blank signals are produced by a PIO state machine, same type of video signals old 8 bit and 16 bit video game consoles generate. Pixels are stored in a framebuffer and fed to another PIO state machine(using DMA) that spits out the pixels during the active video portions of the sync signals. It is hard to hear with elder scrolls music playing in the background b...
Black & White NTSC Sprite animation on Raspberry Pi Pico
มุมมอง 1022 ปีที่แล้ว
2D sprite animation timing done the same way it is in Arduino, by counting how many milliseconds has passed and changing the sprite based on that instead of delays that slow down everything. Graphics are updated during Vblank just like how the NES did and there is very little flicker unlike my previous methods. Game logic exists on the same DMA handler that is used for the DMA channel that feed...
Xbox Joystick & N64 Dpad acting as original N64 joystick
มุมมอง 512 ปีที่แล้ว
Xbox Joystick & N64 Dpad acting as original N64 joystick
Atmega328p emulating an N64 controller quadrature encoder
มุมมอง 632 ปีที่แล้ว
Atmega328p emulating an N64 controller quadrature encoder
Pi Pico & Arduino Nano Function Generator
มุมมอง 3682 ปีที่แล้ว
Pi Pico & Arduino Nano Function Generator
Playing Xbox on an old vintage portable TV
มุมมอง 473 ปีที่แล้ว
Playing Xbox on an old vintage portable TV
Excellent job!
Where did you get the information on how to boot it up? I’d like to make something using this chip also. Nice job btw.
I got lucky with finding Information on reddit about how the F1C100s boots up. I got even luckier when I found "licheepi-nano-mainline" by goediy on github. With his repository I was able to make a bootable SD Card. The image is targeted towards the Li Chee nano dev board but hopefully I can modify the image to add drivers. If not then ill just play with embedded linux on my Zynq 7000.
Nic3
nice job 👏
That’s cool stuff. Have you checked out the RP2040’s PIO peripherals? I’ve seen people use them to simulate the gamecube controller protocol, and I bet it’d work well with N64 as well.
This wouldve taken me one day to do with an RP2040 using PIO. Im trying to get more experience with the esp32 chips. Stm32 and FPGAs also. I've already made a program for the pi pico to generate composite video with basic 3D model rendering.
Impressive how much processing power you can squeeze out of that thing, good work!
Can i get a code for this MTSC generation
github.com/BambooEngineer/Raspberry-Pi-Pico-8-bit-NTSC
Cool, Great picture of Donkey Kong and the moving sprite
Wow 😮🤩 impressive genius.
You could’ve reduced the equation vastly by using the k-map method.
Your right ! I have been lacking in my digital studies. Havent touched an fpga in a while.
Nice! 👌
🤯
Hey! I've just been looking into a similar project, I was wondering if it was possible for you to upload the Arduino sketch, it would be a great learning resource for me and be highly appreciated! If not, no worries, great work!
Added a link to github in the description. I wired the controller's D-PAD outputs to the arduino so the DPAD acts as the joystick and since barely any n64 games use the dpad its not a problem.
Saludos, mas tutoriales sobre esto por favor, excelente video
It is fixed i updated the github page
Hmm yeah this seems like it shouldn’t be that hard to at least get it working within reasonable polling accuracy given that you’re just addressing an 8 bit shift register right? Weird
Ya i mean im happy i got all the buttons working and its not hard to write code to follow the SNES controller protocol since you just gotta emulate a shift register but i ran out of ideas to fix the data lagging. You can see when i hold the down button mario gets glitchy and turns because left is the next button in the protocol and the data pin is just not going back high fast enough.
more of a railgun now instead of a digital joystick
Any input lag?
nope ! runs great
github.com/BambooEngineer/Pygame_2DZ
Could you share your nano pinout diagram?
Search Andrew Brown Gamecube to N64 on github it explains everything
Nice! could you release source?
import serial import time import tkinter as tk arduinoData = serial.Serial('COM6', 115200) time.sleep(3) S = str.encode('S') A = str.encode('A') T = str.encode('T') U = str.encode('U') R = str.encode('R') N = str.encode('N') class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.hi_there = tk.Button(self) self.goodbye = tk.Button(self) self.T = tk.Button(self) self.U = tk.Button(self) self.R = tk.Button(self) self.N = tk.Button(self) self.hi_there["text"] = "S" self.goodbye["text"] = "A" self.T["text"] = "T" self.U["text"] = "U" self.R["text"] = "R" self.N["text"] = "N" self.hi_there["command"] = self.long self.goodbye["command"] = self.short self.T["command"] = self.Ta self.U["command"] = self.Ua self.R["command"] = self.Ra self.N["command"] = self.Na self.hi_there.pack(side="top") self.goodbye.pack(side="bottom") self.T.pack(side="bottom") self.U.pack(side="bottom") self.R.pack(side="bottom") self.N.pack(side="bottom") self.quit = tk.Button(self, text="QUIT", fg="red", command=self.master.destroy) self.quit.pack(side="bottom") def long(self): print("BLINKING") arduinoData.write(S) def short(self): print("BLINKING") arduinoData.write(A) def Ta(self): print("BLINKING") arduinoData.write(T) def Ua(self): print("BLINKING") arduinoData.write(U) def Ra(self): print("BLINKING") arduinoData.write(R) def Na(self): print("BLINKING") arduinoData.write(N) #data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes #c = data.decode('utf-8') root = tk.Tk() app = Application(master=root) app.mainloop()
The arduino code is just Serial Read for the python 3 input and tone statements that are on the arduino site
el codigo
Nice. ;) Doing VGA output from an FPGA was one of the very first things I tried, after blinking an LED. hehe It's a great way to show how little Verilog is needed to get some video output working, and good for teaching how powerful a few simple counters can be. Are those 220R resistors in series with the RGB outputs, btw? If so, it may well be that the voltage is still slightly too high, so the monitor is reducing the input gain to compensate. With VGA, each colour channel input has a max voltage of 0.7V, AFAIK. So you need more like 280 Ohm series resistors, or maybe 270R will work OK (as a more standard value). (the series resistor works in conjunction with the 75R resistor inside the monitor, which goes from each channel down to ground.) www.ohmslawcalculator.com/voltage-divider-calculator It could also be that you need to tweak the timings for the blanking, and add an assign to the VGA output pins to blank the signal. If there is any image information too close to the Hsync pulses, it can screw up the AGC in the monitor / TV, causing an image that's too bright or too dim, and often causes bad ghosting across the screen. assign VGA_R = (HBLANK) ? 1'b0 : MY_R; assign VGA_G = (HBLANK) ? 1'b0 : MY_G; assign VGA_B = (HBLANK) ? 1'b0 : MY_B;
I believe it is the TV compensating, I'll have to try different resistors next time. I really wanted to get GBA Advance LCD signals and have them go through the DE0-Nano and then come out as VGA but I ran out of time and stuff like that requires good quality adapters
@@theengineer9910 I've done a bit of work on that myself. hehe My first test was getting the N64 digital video to work via HDMI, using DE1 dev board. I then did the same for Dreamcast and Game Cube. I managed to get the Game Boy Player to power up as stand alone. The GBP actually has some test pads for the 15-bit LCD signals, and the button inputs for the joypad. I was going to do an HDMI mod for it, but got stuck into redesigning the N64 and Dreamcast motherboards instead. lol
@@theengineer9910 The GBA has a slightly non-standard refresh rate, btw. I think it was closer to 58Hz, so some displays might not work directly with it. I did a spreadsheet calc before, to work out which crystal freq to get the refresh very close to 60Hz. I believe the "GBA Consolizer" by Woozle does the same thing, by feeding in a clock from the FPGA board.
What FPGA is that?
Looks like the DE0 Nano... www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=593&PartNo=1 (not to be confused with the DE10 Nano, which is what the MiSTer retro platform is based on.) Both boards are ideal for getting starting with FPGAs, though. The DE0 Nano is one of the most common used by schools and Universities atm.
DE0-Nano from Adafruit
Cool "Laptop Frankenstein"... Always liked exposed tech, as in the 1985, dystopian film, "Brazil"... I saw your Sharp Objects comment, I too was freaked out with the twist... I browsed and subscribed... If you have a sec. give my channel a look, eclectic I guess, from the perspective of a filmmaker, lol... Thx much, Moses...
Awesome thx bro means a lot ! I thought I would get notifications for comments but guess not(Just lookin through videos as I do once in a while), ya that show blew me away totally didn't expect it to get that good. Crazy you found my channel through my comment hahahahaha I will look at your channel
Also I'm obsessed with exposed Tech ! Ya casings can always look good and do the job but seeing the insides just gives it an Art feeling to me, I love Computer Hardware