Monday, June 8, 2020

BC2 Power Up

After checking for shorts on the PCB and finding none, I applied power.  I suspected it would not work without the USB Power controller and I was correct.  But grounding the control for the P_FET brought 5 VDC to the power section and all the DC-DC converters powered up. 

Then I built the Board Support Package for the Microchip MPLAB X Harmony system.  Finally did a very simple program to blink the BLUE/YELLOW USB connection LEDs that I use in all of the MyMakerTools products.   The result is below.


Next is to build the I2C driver and the application code for the LP5569 LED controller.  I have this mostly done from a previous prototype, but need to convert it to the Harmony structure.

Saturday, June 6, 2020

BC II PCBs have Arrived

Received the Brick Controller II PCBs.  Over the next few days I will be doing the necessary static testing to ensure that 1) I designed it correctly and 2) the manufacturer built it correctly.  Follow the progress here as I test these in conjunction with the MP3/FLASH module. 




Brick Buddy PC Software

Started cleaning up the PC software for the Brick Buddy line of controllers.  One single software package will work for the entire line of Brick Buddys, at least as I see them today.  The PC software will interrogate the attached device and determine what it is and then load the appropriate software options. 

When the software first starts and when no recognizable device attached, then the control center window will show this:


At this point the user needs to connect a Brick Buddy device to the PC.  Once the device is connected, the PC will begin to enumerate the device and determine it's identity.  Once the identity is determined, the window on the PC will expand to show what device is connected, device status and what if any options are available.  This is shown in the figure below.


This change should make it much easier for everyone to use the PC based software to program and control their individual Brick Buddy devices.


Wednesday, June 3, 2020

MP3/FLASH Test Platform (Update 2)



Surprisingly the FLASH portion fired right up and worked.  I am now cleaning up the code.  first step was to correct all the USB descriptors so the Brick Buddy PC software will properly recognize the device.  Since the Brick Controller II will be sold without this module, the firmware had to be modified to only check for the device once and not continually.  Dont need to be wasting PIC32 bandwidth looking for things that are not there.  Other cleanup is needed as I dig into this deeper.  But next I am going to modify the Brick Buddy PC GUI and software to handle the new controller.

Monday, June 1, 2020

MP3/FLASH Test Platform (Update 1)

The PCBs are assembled as shown below.  The MP3 decoder has not arrived yet, thus I will only be testing the FLASH drive for now. 



More later as we progress with the testing.

Sunday, May 31, 2020

MP3/FLASH Test Platform


While I am waiting for the main BCII PCB to come back, I am building a test platform for the MP3/FLASH  add on module.  I had developed the code for this module using the Microchip PIC32MX Curiosity Board, a MikroBus Click MP3 module and a MikroBus Click 64Mb FLASH Module.  There is still more code development and I thought it would be better to use the known Microchip Curisoity board to develop on than the new untried BCII PCB. 


I designed a small carrier PCB that would plug into the two MikroBus slots on the Curiosity board and pickup all the signals. 




Then the completed MP3/FLASH module would plug into the carrier board.  Here is a picture of how that will look.

Now all I have to do is assemble the two boards.  The carrier will be easy.  The MP3/FLASH module will be more challenging.  Plus the MP3 portion is handled by a VS1053B and only AdaFruit had them in stock.They are in NYC, so we will see how long this takes for them to come in.





Saturday, May 30, 2020

COSMAC 2020 ELF Build (part 1)

Glue Logic Design

One of the first decisions that had to made was how to handle the glue logic.  When I fist started working on this many years ago, my idea was to use an ALTERA (Intel) MAX7000s CPLD.   This was one of the first in system programmable, inputs were 5V tolerant and the outputs could be made 5V CMOS compliant with a pull up resistor.  Well fast forward to 2020 and MAX7000S is only available in the excess inventory market.  Prices are not bad ($10-$30 each for 7128 in a TQFP100), but who knows what you are really getting. 

Why ALTERA (Intel)?  Mostly because it is what I am familiar with and the free software still has schematic entry.  Not motivated to learn VHDL at this point.  That could change, but not for now.  So I then moved onto more active parts, MAX II and MAX V.  Well MAX V was more than half the cost of MAX II and more recent.  So I started looking at this family first.  The CON to these families was limited package options.  BGA packages were out for two reasons, I cant solder these down and they drastically increase the PCB layer count and complexity.  So this left just two packages, EQFP64, TQFP100 and TQFP144. 

They way I partitioned the logic would require at least 3 TQFP100 packages. The EQFP64 just never had enough pins.  With common pins and interconnects eliminated, it would all fit in one TQFP144. Another MAX V advantage was part migration with in a package.  With a TQFP144, there were 4 different parts.  Using the middle part, 5M570Z, I have used 25% of the internal resources and 103 of 114 pins.  This gives a lot of flexibility for future improvements.  Having all the logic in one part is also useful, since only one change is needed.  Finally these parts come with 8KBits of FLASH.  I am going to look at how this might be mapped into I/O for configuration or storing nonvolatile data.

Now for the very big disadvantage to this family and every family after MAX7000S.  There is no simple 5V CMOS compatible interface.  The inputs are not 5V tolerant, a resistor and a diode are needed to prevent damage.  The outputs also need a diode and a resistor to produce a 5V CMOS compatible signal.  Not very enticing.  Looking at some commercial development boards on the market showed they were overcoming this by using 74LVC voltage translators (74LVC8T245, 74LVC1T45 and 74LVC2T45).

So after some soul searching, I have decide to go this way, a MAX V part and multiple voltage translators. Once I finish the design I will publish the higher level CPLD schematics to show how I did this.