135 posts in this topic

Oqy8KnA.jpg

EDIT: For project documentation, see http://www.midibox.org/dokuwiki/doku.php?id=midibox_quad_genesis and the pages it links to, specifically including http://www.midibox.org/dokuwiki/doku.php?id=mbhp_genesis !

This semester I will be building a MIDIbox Quad Genesis synthesizer for Josh Whelchel. The synth will be based on my MIDIbox FM V2.1 (dual OPL3) synth, except it will contain four OPN2 (YM2612) and four PSG (SN76489/SN76494). We are still in the early planning stages of the project, so many of the details are not set yet.

However, one thing that's pretty sure is that I will produce a custom PCB for a "MBHP_GENESIS" module, containing one of each sound chip with a parallel interface to the STM32F4 core. These modules will be stackable with pin headers, and their outputs will be correctly mixed with no external circuitry when they are stacked, allowing up to four modules to be connected to the same core. I'm also planning for them to be supplied by the +5V rail (after heavy filtering), with rail-to-rail op-amps, so a separate +/-12V supply would not be necessary.

Of course, the more that I have manufactured, the cheaper they will be for everyone. For budgeting purposes, I would like to know how many people here would be interested one or four of these boards. For now I don't need a commitment, just a statement of interest. Depending on what we decide for the project, I also may be producing a large, custom front panel board, which will be VERY expensive unless we find other interested people. The design is barely even started, so of course there would be no commitment; but if you'd consider building a MIDIbox Quad Genesis with a large front panel, let me know that you might be potentially interested.

Here's a Google Form for letting me know your interests about this project, please fill this out if you would be interested in a board: http://goo.gl/forms/4Gg5JX6GpX

Edited by Sauraen
2 people like this

Share this post


Link to post
Share on other sites

I've gotten a decent amount of interest so far on the form (for instance, I could sell about 30 module boards if they were $10 and about 50 if they were $5, plus I could sell about 10 front panel boards--which I was not expecting--if they were $70). Please fill it out if you're interested!

I have a draft of the MBHP_Genesis module mostly done (values off the top of my head, not checked). The board includes the YM2612 (OPN2), SN76489 or SN76496 (for SN76494, I couldn't find a clock module that was 500kHz in this package, so you'll have to supply an external clock somehow if you want to use that chip), analog mixer/filter with digitally selectable cutoff frequency, and glue logic to access all I/Os from the parallel interface with no additional wires. Four boards may be stacked together, with certain pin headers and sockets, and certain components stuffed or not stuffed on each board--but it does achieve the claim of running four boards without a mess of wires plugging into each of them. It will, however, need a custom bus driver board between the STM32F4 and this module--even if the sound chips could tolerate the +3V inputs (they should be able to), I can't expect the MCU's fanout to be able to drive 12+ chip inputs. Details will come later.

Here's the schematic and board, though the forum software resized the schematic, so there's a real full-size version attached to this post.

large.mbhp_genesis_schematic.png.d596f4dlarge.mbhp_genesis_board.png.aace123f01b

Please forgive the minor graphical issues with the 3D view, I didn't feel like doing custom 3D modeling for the oscillators and the headers, or fixing the TO92.large.mbhp_genesis_board_3d.png.cb0e5e25This is the full-size version schematic (click, then click Full Size in the bottom left):

mbhp_genesis_schematic.png

Edited by Sauraen

Share this post


Link to post
Share on other sites

This is so cool.  I used to have a SEGA Mega Drive (EU version of the Genesis) with a GENMDM cart and midi interface from Little Scale.  I loved the sound,  but not the UI. I am interested in yours,  but what is the availability of the chips? 

Share this post


Link to post
Share on other sites

what is the availability of the chips? 

They're all over eBay for cheap. Don't know if they're genuine of course, but they're cheap enough I can test-order one or two of each from a seller and see if they work. There's a couple marked as "N sold" where N > 50, so it's unlikely that seller is fake.

Share this post


Link to post
Share on other sites

I just filled out the "G-form".

I'll wait to see it you will offer a kit. I like kits but not completed modules  "Are you kidding? This is DIY! My soldering iron is smokin'!"  :)

After seeing what you have done with the MBFM on STM32F4, I'm very exited about this.

If you're after a new project after this, could I suggest the NES  RP2A03/RP2A07.

I have a MIDINES with a MIDIbox 64 CS, but I would love a full MIDIbox one.

http://prinztronix.com/devices/sound-2/

 

 

Share this post


Link to post
Share on other sites

I just filled out the "G-form"...I'll wait to see it you will offer a kit. I like kits but not completed modules  "

Are you kidding? This is DIY! My soldering iron is smokin'!" 

 :) After seeing what you have done with the MBFM on STM32F4, I'm very exited about this.

Thanks! More info and ideas coming soon.

If you're after a new project after this, could I suggest the NES

I expect MIDIbox Quad Genesis will take a year. After that I'll keep it in mind.

Edited by Sauraen

Share this post


Link to post
Share on other sites

This semester I will be building a MIDIbox Quad Genesis synthesizer for Josh Whelchel. The synth will be based on my MIDIbox FM V2.1 (dual OPL3) synth, except it will contain four OPN2 (YM2612) and four PSG (SN76489/SN76494). We are still in the early planning stages of the project, so many of the details are not set yet.

However, one thing that's pretty sure is that I will produce a custom PCB for a "MBHP_GENESIS" module, containing one of each sound chip with a parallel interface to the STM32F4 core. These modules will be stackable with pin headers, and their outputs will be correctly mixed with no external circuitry when they are stacked, allowing up to four modules to be connected to the same core. I'm also planning for them to be supplied by the +5V rail (after heavy filtering), with rail-to-rail op-amps, so a separate +/-12V supply would not be necessary.

Of course, the more that I have manufactured, the cheaper they will be for everyone. For budgeting purposes, I would like to know how many people here would be interested one or four of these boards. For now I don't need a commitment, just a statement of interest. Depending on what we decide for the project, I also may be producing a large, custom front panel board, which will be VERY expensive unless we find other interested people. The design is barely even started, so of course there would be no commitment; but if you'd consider building a MIDIbox Quad Genesis with a large front panel, let me know that you might be potentially interested.

Here's a Google Form for letting me know your interests about this project, please fill this out if you would be interested in a board: http://goo.gl/forms/4Gg5JX6GpX

WOW! Great work. I'm sorry I've been off the board for so long, a lot of family commits for the last 6 months.(First Grand son, moving another 'child' for college, youngest getting started. All good)

I'm in for a few boards, for sure. (in fact was logging on to re-check the OPL board interface, to restart the Eagle layout, when I noticed your design). In fact if you need an OPN2/Sn76489 for testing I'll shot them off to you, just drop me a PM with info. I'll also dump the driver code I was working on, bad s it is, on my Dropbox if you would like.

Yogi

EDIT: here is the Dropbox link

 https://www.dropbox.com/sh/4cw32e2knefjjse/AABiUxZ-NDVPBpkd2__kcNNLa?dl=0

Edited by yogi
Dropbox link

Share this post


Link to post
Share on other sites

 

If you're after a new project after this, could I suggest the NES  RP2A03/RP2A07.

I have a MIDINES with a MIDIbox 64 CS, but I would love a full MIDIbox one.

http://prinztronix.com/devices/sound-2/

 

 

Just an OT FYI, there is a fork of the Chip Maestro project that would fit in very well. Over At Shiftmore's Blog, http://shiftmore.blogspot.com/search/label/2A03 He has a version of the interface for the 2A03 based on 'HC595 SRs. He is running the synth on and Arduino but it would fit in well with a MB core instead. 

  The CM design lacks DPCM so the reviews of the cart have been mixed, most hoping for a MidiNES work alike, (the design also uses a ATMega 168 which I feel is underpowered). Here is the Wayback page for Jarek's TSUNDERE project https://web.archive.org/web/20111001030647/http://www.soniktech.com/tsundere.php

The design is clever in that the logic gates form a state machine that build op codes for the 2A03, a tight loop (~12 cycles total) to Read a value and Store at an address. The uC latches the Data and Adr (pointing to the PSG registers), and the 2A03 continues to execute this 'loop' till pwr down. The original logic design came from Kevtris http://forums.nesdev.com/viewtopic.php?f=9&t=6901&hilit=2A03+synth

 

The real let down of the project is in the Atmega firmware features; which, with a MB core, could do alot more, IMO

Yogi

Edited by yogi

Share this post


Link to post
Share on other sites

I met and hung out with Josh Whelchel at MAGClassic, and he agreed to pay me at cost to build two MIDIbox Quad Genesises, one for him and one for me. So the project is officially a GO!

The schematics above are not up to date, I should be able to put up better ones in a couple days. The big change I made was replacing the two discrete clock oscillators with a dual oscillator circuit using crystal resonators instead. This was because crystal resonators are available that very closely match the frequencies used in the Genesis, so that when VGM files are played on the synth they will be at the original pitch.

I have been working on the Wiki page for MIDIbox Quad Genesis and especially the one for the MBHP_Genesis module. There's a lot of information up, but there will be even more soon!

 

WOW! Great work. I'm in for a few boards, for sure.

Glad to hear you're on board! It will be extremely helpful to have someone else to test the hardware and software and give me feedback.

Just an OT FYI...

This is not only MIDIbox Quad Genesis, it's not FM at all. :-P Please start a new topic somewhere else!

Edited by Sauraen

Share this post


Link to post
Share on other sites

Updated board (ver. 1b) (as usual, right-click on the fourth image, the "smaller" schematic, and select Open in New Tab to see full resolution)

large.mbhp_genesis_schematic_1b.png.f68c

large.mbhp_genesis_board_1b.png.0f2b5417

large.mbhp_genesis_board_3d_1b.png.946df

mbhp_genesis_schematic_1b.png

Edited by Sauraen

Share this post


Link to post
Share on other sites

Sorry for the OT post. Feel free to remove it, or I will if you like.

 On another note, been modding my original prototype to be in line with your design. One point you may want to change, the READY output from the SN76489 is an OC so it will need a pull up. I would guess any value between 1K and 10K, depending on needed rise time and current draw.

Yogi

Share this post


Link to post
Share on other sites

A quick project update:

Since my last post I built a prototype board for the MBHP_Genesis module above, which led me to fix and tweak some things in the design. (Also thanks yogi about that pull-up!)

I've also added an additional chip, an 8-bit latch for the SN76489 data lines, and associated circuitry. This allows the MCU to write a byte to the sound chip, then immediately use the bus for other things without corrupting the write. The MBHP_Genesis board takes care of latching the data value, waiting for READY to go high, and then un-/CS-ing the chip at that time. The MCU can read from the (other) register on the board to check on the status of the READY line; in the older design above, doing so would corrupt the write. This is similar to how the OPN2 works, you write an address and data and then you can use the bus for other things, and you can read from the chip to see if it's ready for another write.

I've also changed plans a bit on the clock circuits. The board will support a standard 8-DIP oscillator or a 5x7mm SMT oscillator for each chip. The synth engine will contain logic to optionally adjust the frequency of notes on each chip from the source VGM file to match the clock you're using. This is because I wasn't able to find a good source of 7.67MHz (or 7.68MHz) oscillators to get the YM2612 to run at its original NTSC frequency.

I want to confirm a couple circuit changes on my prototype, and then I will start taking orders for the boards. Here's the planned pricing, let me know what you think:

  • Bare MBHP_Genesis board: $5 (double-sided, standard soldermask, one-sided silkscreen, 3.6" x 2.45", rectangular-pattern isolated mounting holes)
  • Guaranteed-working set of one YM2612 and one SN76489: $5 (these will be from a lot, of which I have tested a few of the chips, but not every individual chip is tested--if yours don't work, you can get a refund)
  • I will also have YM3438s, SN76494s, and SN76496s available, tested similarly as above, prices TBD
  • Complete parts kit for one board (other than sound chips), including 8.00MHz oscillator for YM2612 and 3.579545MHz oscillator for the SN76489: $10
  • Assembly service per one board: $20 soldering alone but no testing, $50 tested and confirmed working (total $75 including parts for one complete, tested board)
Edited by Sauraen

Share this post


Link to post
Share on other sites

Sounds great to me. I'm looking forward to this new Mb project.

Very impressive work, as always.

Share this post


Link to post
Share on other sites

A quick project update:

Since my last post I built a prototype board for the MBHP_Genesis module above, which led me to fix and tweak some things in the design. (Also thanks yogi about that pull-up!)

I've also added an additional chip, an 8-bit latch for the SN76489 data lines, and associated circuitry. This allows the MCU to write a byte to the sound chip, then immediately use the bus for other things without corrupting the write. The MBHP_Genesis board takes care of latching the data value, waiting for READY to go high, and then un-/CS-ing the chip at that time. The MCU can read from the (other) register on the board to check on the status of the READY line; in the older design above, doing so would corrupt the write. This is similar to how the OPN2 works, you write an address and data and then you can use the bus for other things, and you can read from the chip to see if it's ready for another write.

I've also changed plans a bit on the clock circuits. The board will support a standard 8-DIP oscillator or a 5x7mm SMT oscillator for each chip. The synth engine will contain logic to optionally adjust the frequency of notes on each chip from the source VGM file to match the clock you're using. This is because I wasn't able to find a good source of 7.67MHz (or 7.68MHz) oscillators to get the YM2612 to run at its original NTSC frequency.

I want to confirm a couple circuit changes on my prototype, and then I will start taking orders for the boards. Here's the planned pricing, let me know what you think:

  • Bare MBHP_Genesis board: $10 (double-sided, standard soldermask, one-sided silkscreen, 3.6" x 2.45", rectangular-pattern isolated mounting holes)
  • Guaranteed-working set of one YM2612 and one SN76489: $5 (these will be from a lot, of which I have tested a few of the chips, but not every individual chip is tested--if yours don't work, you can get a refund)
  • I will also have YM3438s, SN76494s, and SN76496s available, tested similarly as above, prices TBD
  • Complete parts kit for one board (other than sound chips), including 8.00MHz oscillator for YM2612 and 3.579545MHz oscillator for the SN76489: $10
  • Assembly service per one board: $20 soldering alone but no testing, $50 tested and confirmed working (total $75 including parts for one complete, tested board)

Sounds good:) I'll be in for 2 bare boards when you're ready. 

Yogi

Share this post


Link to post
Share on other sites

Scratch that pricing--an engineer buddy gave me a tip on a board house in China, which gives an online quote that's 70% less than the one I was looking at previously (from a top US board house)! If all goes well with them, I can get a price at which I can easily sell the boards for $5 each. This might even put the large front panel boards in reasonable price territory!

Share this post


Link to post
Share on other sites

Revision 1e of the MBHP_Genesis boards have been ordered! The price for the bare boards will be $5 each. When they arrive, I will assemble and test one (with a similar AVR-based test program to the one I've been using, not the Core_STM32F4 that will be eventually used), and then begin taking orders for boards and parts kits.

Here are the production revision (1e) schematic and board images:

large.mbhp_genesis_schematic_1e.png.8510

large.mbhp_genesis_board_1e.png.ba150897

large.mbhp_genesis_board_3d_1e.png.f4b2f

And the full-size version of the schematic (click image, then click Full Size, then click image to zoom to full size--it's 3000x2000):

mbhp_genesis_schematic_1e.png

Edited by Sauraen

Share this post


Link to post
Share on other sites

The boards came!

large.mbhp_genesis_1e_front.jpg.97a34175large.mbhp_genesis_1e_back.jpg.68576591dlarge.20151127_170737.jpg.c0c9e875f18d09

I am very busy at the end of this semester, but I'm in the process of working out the details so that these boards can be sold on SmashTV's MIDIbox Shop (once I've tested one!), probably starting around mid-December. They will be available for $5 each. Please keep in mind that the application code for MIDIbox Quad Genesis has not yet been developed--if you are buying the boards now, you will have to write your own application, whether using one of the MIDIbox core modules or any other microcontroller. The boards use a standard 8-bit parallel interface that's directly compatible with any 5V microcontroller, and compatible with 3.3V/3V boards using appropriate level shifters (see the wiki pages at http://www.midibox.org/dokuwiki/doku.php?id=mbhp_genesis and http://www.midibox.org/dokuwiki/doku.php?id=mbhp_genesis_ls ).

Share this post


Link to post
Share on other sites

Looks Very nice! Will be looking forward.

Yogi

Edited by yogi

Share this post


Link to post
Share on other sites

woot.  Chips are cheap, should be fun

Share this post


Link to post
Share on other sites

Absolutely amazing work, thanks for sharing!

Share this post


Link to post
Share on other sites

This looks great!  Hmmm.  Writing my own application?  Sounds like a bit of a learning curve for me.  That said... only one way to learn!  I'll be looking out for those boards at the MIDIBox shop.  

Edited by Blatboy

Share this post


Link to post
Share on other sites

Looking good! :-)

Many greets!

Peter

Share this post


Link to post
Share on other sites

Thanks everyone! I'm in the process of testing the boards now.

This looks great!  Hmmm.  Writing my own application?  Sounds like a bit of a learning curve for me.  That said... only one way to learn!  I'll be looking out for those boards at the MIDIBox shop.  

Please understand, writing the application code will be a major project for me next semester--I absolutely will be doing it, it's just that if you buy the boards now, it's not made yet. Just wanted to make sure it was clear.

I'm planning the development to go like this:

  • Testing MBHP_Genesis boards, making them available for purchase on MIDIbox Shop (to end of December).
  • Developing front panel for MIDIbox Quad Genesis (version for myself and Josh Whelchel), including aluminum and custom PCB. Having those manufactured and assembling all the hardware (to mid February).
  • Developing first application code, Tracker Mode. This code puts each chip on a different USB MIDI port and maps voices to channels and CCs to parameters; no front panel controls at all, just the core and the sound chips. I will do my best to follow that one tracker MIDI standard I saw somewhere. I will put up each of these applications as I develop them (on SVN).
  • Developing second application code, VGM Player. This code will use a 2x40 LCD and a SCS-like minimal control surface on the DIN/DOUT port (since J10A/B are the parallel interface for the sound chips). The application will let the user stream VGM files from the SD card to a single chip pair. (Hopefully this will also be done by mid February, but probably not.)
  • Developing MIDIbox Quad Genesis shell: front panel interfacing, more advanced high-priority sound chip writing, memory allocation, etc.
  • Integrating Tracker Mode and VGM Player mode. Polyphony engine.
  • Developing VGM-editing-from-front-panel parts of application code.
  • Developing modulators and other features.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now