Digital dash build log

Started by Extent, June 13, 2011, 10:09:09 PM

Previous topic - Next topic

The Prophet of Doom

Have you given up on this?  I'm still really really keen to get one of these on my bike

Extent

Still working on it, progress has just been very very slow with plenty of distractions by work.  Since last update I've patched up a couple of very minor software bugs, been through 2 complete different revisions of a shielded housing, added temperature sensing, and switched the character LCD for a very daylight readable transflexive display.  I've also redone most of the schematic in a different software package and am getting ready to do a board layout to send out to get one printed.  Lots of cleanup stuff but just not a lot to show.  Temp circuit brings in too much interference and needs to be changed, and I've got some more software filtering things to do to improve results in general.  That's about where I'm at right now. 

The shielding problem really just stuck a massive wall in front of things :/  Catch-22, No point in ride testing something that will constantly crash because of interference, so I've got to build a production unit to see if the design works as needed.
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

Extent

Still haven't done any more physical testing, but I've got a first revision of a board laid out.  Still some decisions to make about a couple of things, but it's mostly there.

The board is now dual processor, mainly to allow the software to be updated with an SD card (instead of requiring a chip programmer)

Only a few more footprints to check and I'll probably order a small run of parts.  I need to get the parts in hand to check against a printout of the circuit board to make sure everything lines up before I send the board out to get manufactured.

I also need to figure out a good way of mounting the thing.  Unfortunately the second microprocessor makes the board bigger, so now it's about 3.7" by 2" or so.  I don't think that will fit without modifying the dash ( my general prototype requires removing the stock temperature guage and snapping off the center column that supports the middle vanity plate)  The dual LCD display version will almost certainly require removing the temperature gauge for clearance, but I really want to try and shift things around so that you don't have to modify the stock chassis at all.

Board layout


Schematic
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

QBS

Temperature guages are your friend.

Extent

There is a temperature gauge in the digital dash, it only means that it would be mandatory to use the digital one, rather than optional.
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

QBS

Sounds like temp info is covered.

Extent

Haven't really made a lot of progress recently, been spending all my time getting ready for a job hunt, but I'm doing final fitting of the board right now and with any luck I'll be sending it out for manufacture sometime tonight.  I already have all of the components to build it (and a couple spares).

Still really behind on the software though, the new hardware layout requires quite a bit of additional code that I haven't even started on.  Hopefully I'll finish my portfolio soon and then have another good opportunity to take a bit of a "vacation" and finish it all up.


Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

Lucky

1982/3 XZ550 Touring Vison, Gold on Black

NewVisionGuy

There's more than a few people that would buy one.  This is just AMAZING!

Lucky

#69
QuoteThe dual LCD display version will almost certainly require removing the temperature gauge for clearance, but I really want to try and shift things around so that you don't have to modify the stock chassis at all.

Extent,
If the digital has tach & temp capabilities, why not use the whole housing?  I have spare housings & will happily mod them as needed (or supply one for the first prototype)
Also, is there an option (plug in or lug screw) for the stock fuel sender?
1982/3 XZ550 Touring Vison, Gold on Black

Extent

I figure anyone who really wants to replace their entire gauge cluster would just buy a veypor :p

But really, I just want to remain as un-invasive as possible, so that someone who's just looking to replace their speedo can do that without mangling the rest of their gauges.  The display board is where you really get all of your options, and that could easily be the size of the entire cluster.  This board is built to drive up to 3 displays out-of-the-box, and with some very minor cable hacking I could drive 4 displays without doing a new PCB revision.  That's plenty to completely fill the entire stock housing, but only if you want to.

My regular cluster is already cut up to make all the room I need, and I have an unmodified spare that I'm using to develop this board on.

Once I can get some real solid real-world testing in and prove that the build is fully accurate and absolutely reliable then I'll have the confidence to start thinking about completely replacing critical time-sensitive instrumentation like the tach, but until then I like having my analog meter working.

No fuel sensor for this version, I definitely don't want to be sending power into the gas tank blind with no reference at all.  Once what I have here is all working perfectly then I can do a bit more research and get some measurements from people and fuel level should be easy enough to work into the next revision of the board.  I'm assuming it works on a similar principal to the temp sender.
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

Extent

#71
The boards just came in the mail today  ;D ;D  I really should focus on work, but I'll probably take a break later tonight and start populating one of them.



--edit--

Total parts cost including the board right now comes up to aprox 40.16
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

NewVisionGuy

Looks way too complicated for me.  I'm glad there are folks like you out there who "get" this stuff.  Otherwise,  I wouldn't own a single piece of electronic equipment. 

Can't wait to see it finished!


Extent

Finished assembling the unit, it was much easier to do than I expected.  The chips have the smallest pins, but are actually the easiest to solder.  It only takes about 3 seconds to do each entire row of pins once it gets tacked down.  I think I'll have to replace the connector on the bottom of the board with a right angle connector or else it will stick up too high to fit screens in the cluster at the same level as the other gauges.

I still haven't actually tried to power it up yet, I've got to make some changes to the software.  It'll have to be a project for another day, but I'm extremely hopeful.




Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

Extent

#74
So I took a little break from productive work and started writing the firmware for the slave controller.  The more I think about it the more complicated it gets, but we'll just take it one step at a time.  I've got basic 1 way communication going on, the beginnings of a command structure and some extremely rudimentary fault tolerance.

To round this session out I threw the code onto the actual board with my spare screen.  It all works great so I can be sure that all of the board related to the processors, their interconnects, and all of the display ports are all working.  Testing the power supply and the sensor inputs will come later, but I'm feeling confident after how well this came together.

What you're seeing here is the screen on the left having been written to while the slave controller was starting up, the screen on the right being constantly refreshed by the master controller through the slave controller, and the screen in the middle being written to directly by the master controller.





The two main screens could be any 4bit parallel LCD screen, so they could both be 4 row displays potentially.  The one in the middle is the one that's unreadable in direct sunlight, but it's just a generic serial device, so that plug could easily be a PC hookup or a port for a GPS receiver.  That'll all get integrated down the line, but for now I've got some nice options for experimenting without having to do a new revision of the mainboard right away.
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

YellowJacket!

That is absolutely AWESOME!

David


Living the dream - I am now a Physician Assistant!!   :-)

Extent

Been working on firmware, have the display code and drivers mostly completed with a good bit of robustness.  Slow progress but progress all the same. 

A short video showing off the controller running through a command test of all it's built in functions.
http://www.youtube.com/watch?v=giUEn0HwUYw
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

The Prophet of Doom

If you are running short of room, could you put one processor in the boot for sensor pickup/logging, and the other processor in the dash for display only.  That way you could have multiple bikes, move the dashboard and keep individual bike data in memory


Extent

Possibly, but I would really worry about running highspeed signal lines over such a large and noisy distance.  I'm hoping to be able to hit up to 4mhz clock rate between the two chips, and currently the lines aren't longer than 2".  That's actually the first part of the board that I layed out, and all of the routing for other components was done around it.

Storing multiple profiles for different bikes would be trivial though on the SD card, with either one card per bike or a menu to let you choose between different settings on a single card.

If I physically run out of room for stuff I can just stack multiple daughter boards on top of the main PCB.  That I'm not too worried about yet.
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.

Extent

Quick progress update.

Proxy SD card access - fully tested and working
Simple buffered log writing - complete and compiles, but untested
Code update file parsing, error checking - complete and tested
ICSP programming - mostly done, still needs to be integrated into the greater codebase

Still to do:
Simple file reading
General performance - hoping for 10x performance increases in certain portions of the code
SPI mode URART interface for SD card - more performance updates
High speed liquid crystal interface


The current codebase is using 31k out of 32k total program space available on the chip, so it's going to be a really tight fit if I can't find some big obvious section of code that can be removed (I have some ideas)

Full code is now online on google code for both aspects of the project
http://code.google.com/p/utility-controller/
http://code.google.com/p/visionary-digital-dash/
Rider1>No wonder, the Daytona has very sharp steering and aggressive geometry.  It's a very difficult bike for a new rider.
Rider2>Well it has different geometry now.