InfinitROB

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
InfinitROB
by on (#219502)
Hello,

I think it is time to share a project that I began a few years ago, shelved, and have recently revisited.

I have always had a special place in my heart for the NES era. Those were special times as a kid. I've often wanted to bring ROB back to life, which led to a significant amount of thought and development towards such. I played with a few different ideas as to what I was looking to achieve, from original functionality to new experiences.

Ultimately, InfinitROB features a completely redesigned logic and interface system that is compatible with classic and custom devices. Although the project is still in development, it is fully functional and opens the possibility for entirely new interactions.
Re: InfinitROB
by on (#219504)
Could you say a few more words about what it is?

A replacement logic board?
Replacement motors?
Communications medium?
Re: InfinitROB
by on (#219507)
Custom logic board, software, and interface housed inside the original robot, operating original internals as well as additional components. The robot can function manually or autonomously.
Re: InfinitROB
by on (#223231)
Here is a video of the basic operation. This is being controlled with an NES gamepad connected to one of the new inputs on ROB. I could also program logic for ROB to function without assistance.

Image
Re: InfinitROB
by on (#223428)
Completed features list:

InfinitROB uses a custom circuit board and code based on the Arduino Pro Micro to enable the following features:
- 3 Motor PWM Control (on-board electronics support up to 4)
- Turn and Height Sensors (original equipment)
- RGB LED pixel strip control (WS2812B or similar, see FastLED library for compatible pixels).
- NES Controller interface for direct gamepad control (using NESpad library)
- Servo control (such as HXT500)
- 8 expansion buttons (CD4021BE shift register - additional buttons possible with daisy-chained shift registers)
- TX/RX serial communication (with turn and height sensors on expansion button shift register)
- Additional input/output pin for items such as photosensors, piezos, etc.
- Gyromite support possible on modern monitor (beta feature)
- HID Device emulation (keyboard/mouse)
- USB MIDI Support (with MIDI library)
- Reprogrammability
Re: InfinitROB
by on (#223430)
InfinitR wrote:
- Gyromite support possible on modern monitor (beta feature)
How have you achieved this?

Do you just literally listen in on the composite video signal? Or is it optical?
Re: InfinitROB
by on (#223458)
The problem with using the original ROB has always been the dependency on the refresh rate of the CRT TV to match the timing expected by the robot to then trigger each movement. I experimented with the idea of an interpreter device of sorts to act between the monitor and ROB, but ultimately decided to completely take over the logic with new internal parts. This gives me the ability to change the way that ROB interprets the visual signals from the game. I'm still sensing the flashing patterns on the screen. I hope to get a demo up once I finish a few things with the project.
Re: InfinitROB
by on (#223756)
Image

Well, this got me refocused on Gyromite support. This isn't the entirety of the project, but I think it's worth sharing. I'm not 100%, but I think that this is the first R.O.B. operating with a modern display.

I've developed two methods of Gyromite control. The optical version works much like the original in that R.O.B. captures signal patterns with a sensor, interprets the data, and then uses that to perform unique commands. Very cool, however this method takes tweaking for consistent results, and sensor/monitor differences can cause variance. It's less practical, although there is homebrew potential and I will probably keep refining it for fun.

However, since I already have the ability to connect a NES gamepad to R.O.B. directly, I created a method of sending commands to R.O.B. as well as to the game in a way that controls just like the original. R.O.B. also still uses a NES gamepad as Player 2.

I am using Nestopia in this demo on an LED monitor and PC. I am pretty proud to have gotten to this point. Cheers!
Re: InfinitROB
by on (#224253)
InfinitR wrote:
The problem with using the original ROB has always been the dependency on the refresh rate of the CRT TV to match the timing expected by the robot to then trigger each movement. I experimented with the idea of an interpreter device of sorts to act between the monitor and ROB, but ultimately decided to completely take over the logic with new internal parts. This gives me the ability to change the way that ROB interprets the visual signals from the game. I'm still sensing the flashing patterns on the screen. I hope to get a demo up once I finish a few things with the project.

That's huge. I've always had this idea pf reworking a zapper so it uses a cheap CCD or CMOS sensor to basically take a series of photos when trigger is pressed (wouldn't even need to be a big resolution or big lens), then using some logic detecting "black, then white" pattern meaning that zapper hit something, then sending appropriate signal to the NES, but never had the knowledge or components to pull it off.